const obj = [{
id: 3,
parentId: 2
}, {
id: 1,
parentId: null
}, {
id: 2,
parentId: 1
}
最后得输出结果
{
id:1,
parentId:null,
children:{
id:2,
parentId:1,
childre:{
id:3,
parentId:2
}
}
}
[](#代码实现)代码实现
console.log(double(obj))
function double(arr) {
//排序,把数组里面得顺序排列为正序
arr.sort((a, b) => { return a.id - b.id })
//利用数组map方法遍历数组
const newArray = arr.map((item, index) => {
//判断下标不等于数组得长度减1 也就是否是最后一项得时候
if (index !== arr.length - 1) {
//利用Object.assign方法合并对象
return Object.assign(item, {
//定义属性名children,用filter数组过滤找出下一下项
children: arr.find(s => s.parentId === item.id)
})
}
})
//最后返回是数组里面得三项,只取第一项
return newArray[0]
}