创建树

作者: Asuler | 来源:发表于2021-06-15 16:58 被阅读0次

将扁平化的节点数组,变成一棵树,使用tree-with-array
npm i tree-with-array

创建树的算法,通过idMapping的方式高效创建
https://blog.csdn.net/sinat_34560749/article/details/103832350

const data = [
    { id: 56, parentId: 62 },
    { id: 81, parentId: 80 },
    { id: 74, parentId: null },
    { id: 75, parentId: null },
    { id: 76, parentId: 80 },
    { id: 63, parentId: 62 },
    { id: 80, parentId: 86 },
    { id: 87, parentId: 86 },
    { id: 62, parentId: 74 },
    { id: 86, parentId: 75 },
];

const idMapping=data.reduce((prev,next,i)=>{
    prev[next.id]=i;
    return prev;
},{})

const rootArr=[];
data.forEach(node=>{
    if(!node.parentId){
        rootArr.push(node)
        return;
    }
    const parent=data[idMapping[node.parentId]];
    parent.children=[...parent.children|| [],node];
})

console.log(rootArr)

相关文章

  • 二叉树的遍历规则二

    原文链接:https://www.jianshu.com/p/768892e095bf我的理解:参考建树的方式和创...

  • 建树

    今天我想写点什么呢? 也许有一天我可以改正拖延的坏毛病。但绝不是今天。

  • # 建树

    ## 建树1 ### 建树2 [建树](jianshu.com)

  • 创建树

    将扁平化的节点数组,变成一棵树,使用tree-with-arraynpm i tree-with-array 创建...

  • 重建树

  • 2019-02-28

    建树

  • 建树lfg测试

    测试

  • flutter: 建树流程

    环境: flutter sdk v1.7.8+hotfix.4@stable 对于界面开发,通常的视图树都是通过视...

  • 2017-08-03

    你好建树

  • 线段树

    一、线段树建树、单点修改、区间查询 二、线段树建树、区间修改、区间查询

网友评论

      本文标题:创建树

      本文链接:https://www.haomeiwen.com/subject/bmcroktx.html