数组转对象嵌套

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]
}
相关文章
相关标签/搜索