【发布时间】:2021-07-06 10:05:50
【问题描述】:
下面的代码,不返回一个平面数组,非常混乱,需要一个深度嵌套的对象数组的平面数组
已附上jsfiddle链接https://jsfiddle.net/k6swuvox/
const arr = [{
id: 1,
name: 'XYZ 1'
}, {
id: 2,
name: 'XYZ 2',
children: [{
id: 5,
name: 'XYZ 5'
}, {
id: 6,
name: 'XYZ 6',
age: 29,
children: [{
id: 7,
name: 'XYZ 7'
}, {
id: 8,
name: 'XYZ 8'
}]
}]
}, {
id: 3,
name: 'XYZ 3'
}, {
id: 4,
name: 'XYZ 4'
}]
const flats = data => data.map(e => {
if (e.children) {
return [...flats(e.children), e]
} else {
console.log("E", e);
return e
}
})
console.log(flats(arr));
【问题讨论】:
-
在您的代码中只需调用
flats(arr).flat()就足够了。
标签: javascript arrays json ecmascript-6 nested