javascript - 如何将新项目推送到angular7中的嵌套数组
问题描述
我有一个嵌套数组,我想将新项目推送到嵌套数组。
FoodNode= [
{
name: 'Fruit',
parent:'root',
children: [
{name: 'Apple',parent:'Fruit'},
{name: 'Banana',parent:'Fruit'},
{name: 'Fruit loops',parent:'Fruit'},
]
}, {
name: 'Vegetables',
parent:'root',
children: [
{
name: 'Green',
parent:'Vegetables',
children: [
]
}, {
name: 'Orange',
parent:'Vegetables',
children: [
]
},
]
},
];
现在我想将它添加到绿色的孩子。
this.fileElements.filter(res => {
if (res.parent === 'root') {
this.fileList.push(res);
} else {
this.fileList.filter((search, index) => {
if (search.name === res.parent) {
console.log(typeof search.children === 'undefined');
search.children.push(res);
}
});
}
});
此代码仅将项目推送到 1 级(如直接子级),基于父值我将元素推送给子级。我正在使用 mat-tree 所以我需要相同的结构。请帮助
解决方案
希望能帮助到你。
this.FoodNode.forEach(e => {
if (e.name == "Vegetables") {
let abcd = e.children;
abcd.forEach(e1 => {
if (e1.name === "Green") {
let data = [
{ name: "Apple" },
{ name: "Banana" },
{ name: "Fruit loops" }
];
data.forEach(e2 => {
e1["children"].push(e2);
});
}
});
}
});
推荐阅读
- jquery - 如何使用 Jquery 从多个表单字段创建数组?
- php - Laravel - 特定字段的永久验证
- wordpress - 如何从邮递员那里获取未过期的 wordpress jwt 令牌以设置颤振电子商务配置文件?
- java - Css Selector 有特定的属性吗?
- laravel - 路线 [地图] 未定义
- java - IntelliJ - 无法导航到 JDK 目录
- scrapy - Scrapy 不会提取某些选择器中的文本
- java - Firebase RecyclerView 显示一项
- javascript - 如何让 React HighCharts 与 TypeScript 一起工作?
- python - Numpy子集/切片不返回预期值