这是给定的数组:
[{
key: 1,
nodes: {}
}, {
key: 2,
nodes: {}
}, {
key: 3,
nodes: {}
}]
Run Code Online (Sandbox Code Playgroud)
如何从这个数组在 JavaScript 中创建嵌套的子对象?
[{
key: 1,
nodes: [{
key: 2,
nodes: [{
key: 3,
nodes: []
}]
}]
}];
Run Code Online (Sandbox Code Playgroud)
这是一个非常好的用例,reduceRight它允许您从内到外构建结构:
let arr = [{
key: 1,
nodes: {}
}, {
key: 2,
nodes: {}
}, {
key: 3,
nodes: {}
}]
let a = arr.reduceRight((arr, {key}) => [{key, nodes: arr}],[])
console.log(a)Run Code Online (Sandbox Code Playgroud)