将平级结构转换为树形结构数据

187 阅读1分钟
       var tab = result[1].data;
       var audienceData = result[0].data;
        tab.map(item => {
            item.children = []
            audienceData.map(elseitem => {
                if(item.id == elseitem.categoryId){
                    var obj = {};
                    obj.id = elseitem.audienceId;
                    obj.name = elseitem.audienceName;
                    item.children.push(obj);
                }
            })
        })
        function root(list, pid) {
            let arr = [];
            let temp;   
            list.forEach(item => {
                item.name = item.categoryName;
                if (item.parentId == pid) {
                    let obj = item;
                    temp = root(list, item.id);
                    if (temp.length > 0) {
                        obj.children = temp;
                    }
                    arr.push(obj);
                }
            })
            return arr;
        }
        var filterData = root(tab,0);
        例子:
        [
            {id:1,parentid:0,name:'aaa'},
            {id:2,parentid:1,name:'bbbbb'}
        ]