function listToTree(arr) {
const res = [];
const map = {};
for(let e of arr) {
if(!map[e.id]) {
map[e.id] = {
children: []
}
}
const item = map[e.id] = {
...e,
children: map[e.id].children
}
if(e.pid === 0) {
res.push(item)
}else {
if(!map[e.pid]) {
map[e.pid] = {
children: []
}
}
map[e.pid].children.push(item)
}
}
console.log(map)
return res;
}
const data = [
{ id: 2, name: '部门2', pid: 1 },
{ id: 1, name: '部门1', pid: 0 },
{ id: 3, name: '部门3', pid: 1 },
{ id: 4, name: '部门4', pid: 3 },
{ id: 5, name: '部门5', pid: 4 },
{ id: 7, name: '部门7', pid: 6 },
];
console.log(JSON.stringify(listToTree(data)))