js一维数组转树结构

//一维数组转树结构
function ArrayToTree(list){
    let treeNodeList = [];
    for (let i = 0; i < list.length; i++) {
        let status = false;
        let element = list[i];

        //第二个循环 start
        for (let k = 0; k < list.length; k++) {
            let item = list[k];
            if(!['',0,'0',null,undefined].includes(element.parentId) && element.parentId == item.id){
                //有上下级关系
                status = true;
                if(!item.children){
                    item.children = [];
                }
                item.children.push(element);//添加子节点
                break;
            }
        }
        //第二个循环 end

        if(!status){
            //一级节点
            treeNodeList.push(element);
        }
    }

    return treeNodeList;
}



var list = [
    {
        id:'1',
        parentId:'',
        name:'陈天'
    },{
        id:'2',
        parentId:'1',
        name:'李白'
    },{
        id:'3',
        parentId:'',
        name:'王大装'
    },{
        id:'4',
        parentId:'2',
        name:'钱多多'
    },{
        id:'6',
        parentId:'2',
        name:'朱明'
    },{
        id:'7',
        parentId:'5',
        name:'黄民'
    },{
        id:'8',
        parentId:'6',
        name:'刘豪'
    },
]
ArrayToTree(list);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容