js获取嵌套对象某个属性的值组成新数组?

作者站长头像
站长
· 阅读数 15

我想获取每一层对象的id的值,放入一个数组中。

let arr = [
  {
    id:'1',
    name:'aaaaa',
    children:[
      {
        id:'1-1',
        name:'bbbbb',
        children:[
          {
            id:'1-2',
            name:'ccccc',
            children:[
              {id:'1-3-1', name:'ddddd'},
              {id:'1-4-1', name:'eeeee'}
            ]
          }
        ]
      }
    ]
  }
]
回复
1个回答
avatar
test
2024-07-17

递归就好了呀

function getId(arr){
    let newArr = []
     arr.forEach(item=>{
        newArr.push(item.id);
        if(Array.isArray(item.children)){
            newArr.push(...getId(item.children))
        }
    })
    return newArr;
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容