题目描述:打平的数组换成树形数组:[ ( id: 1, children: [ ( id: 2, children: [ ( id: 3 ) 1 )parentld: 2 )]
时间: 2023-06-04 17:08:30 浏览: 112
抱歉,我可以回答这个问题。这个任务可以使用递归来实现,具体实现方式可以参考以下代码:
function flat2Nested(data) {
let result = []
let temp = {}
for(let i=0;i<data.length;i++) {
temp[data[i].id] = data[i]
}
for(let i=0;i<data.length;i++) {
if(temp[data[i].parentld]) {
if(!temp[data[i].parentld].children) {
temp[data[i].parentld].children = []
}
temp[data[i].parentld].children.push(data[i])
}else {
result.push(data[i])
}
}
return result
}
console.log(flat2Nested([{id:1,parentld:null},{id:2,parentld:1},{id:3,parentld:2}]))
输出: [{id:1,parentld:null,children:[{id:2,parentld:1,children:[{id:3,parentld:2}]}]}]
这样就可以将打平的数组转换为树形结构的数组了。
阅读全文