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]
}