數組轉對象嵌套

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]
}
相關文章
相關標籤/搜索