文采不好,不多逼逼,直接上代码:
function tree(data) {
let map = {};
let val = [];
//生成数据对象集合
data.forEach(it=>{
map[it.department_id] = it; //department_id为每个节点的id
})
//生成结果集
data.forEach(it=>{
const parent = map[it.pid_department_id]; //pid_department_id为父节点的id
if(parent){
if(!Array.isArray(parent.children)) parent.children = [];
parent.children.push(it);
}else{
val.push(it)
}
})
return val;
}