线性结构转树形结构(生成无限层级菜单)

Posted flamestudio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性结构转树形结构(生成无限层级菜单)相关的知识,希望对你有一定的参考价值。

let list = [ 
    { parentId: 0, id: 1, value: ‘1‘ },
    { parentId: 3, id: 2, value: ‘2‘ }, 
    { parentId: 0, id: 3, value: ‘3‘ },
    { parentId: 1, id: 4, value: ‘4‘ }, 
    { parentId: 1, id: 5, value: ‘5‘ }, 
]; 

function listToTree(list){
    //遍历整个列表
    return list.filter(cur=>{ 
        // 获取当前节点的子节点
        let children= list.filter(item=> item.parentId == cur.id ); 
        if(children.length>0){
             cur.children=children;
        }
        //只返回顶级节点
        return cur.parentId==0; 
    });
}

console.log(listToTree(list));

以上是关于线性结构转树形结构(生成无限层级菜单)的主要内容,如果未能解决你的问题,请参考以下文章

js中实现无限层级的树形结构(类似递归)

项目开发-树形层级结构中的数量统计

浅理解扁平数据结构转Tree(树形结构)

构造无限层级树形菜单

iOS 动态树形结构 - 实现多级菜单,附带复选框功能

线性结构与树形结构相互转换(ES6实现)