比如有如下数组
let data = [{
id: 4,
name: "沙发类",
children: [{
id: 41,
name: "布艺沙发",
children: [{
id: 411,
name: '布艺沙发411',
}, {
id: 412,
name: '布艺沙发412'
}]
},
{
id: 42,
name: "充气沙发"
},
{
id: 43,
name: "懒人沙发"
}
]
},{
id: 5,
name: "木床类",
}]
第一层的第一个数据 id 为 4 第二层的第一个数据 id 为 41 第三层的第一个数据 id 为 411
期望的结果
[{id:4},{id:41},{id:411}]
自己写了个 但是总感觉有 bug
getFirstIdList(arr = []) {
let res = [];
for (let i = 0; i < arr.length; i++) {
const item = arr[i];
res.push({id:item.id});
if (item.children) {
res = res.concat(getFirstIdList(item.children));
}
break;
}
return res;
}
getFirstIdList(data)
请教各位大佬是否有更优雅的方式,或者 lodash 这种第三方库是否有提供?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…