创建树

作者: 王善良_ | 来源:发表于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.haomeiwen.com/subject/bmcroktx.html