如何在angular7中将新项目推送到嵌套数组

时间:2019-12-10 07:16:23

标签: javascript typescript 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);
          }
        });
      }
    });

此代码仅根据父值Im将元素推入子级,将项目推至1级(如直属子级)。我使用的是mat-tree,所以我需要相同的结构。请帮助

1 个答案:

答案 0 :(得分:0)

希望有帮助。

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);
    });
   }
});
}
});