const oldData = [{
pid: '',
id: '1',
name: '总裁办'
},
{
pid: '',
id: '2',
name: '技术部'
},
{
pid: '2',
id: '3',
name: '前端开发部'
}
]
const transListToTreeData = (list, pid) => {
// 1. 创建一个数组存放结果
const res = []
// 2. 遍历源数据, 拿出所有pid === 传入参数的对象放入结果数组
list.forEach(element => {
if (element.pid === pid) {
// 递归开始, 每次找到一个符合条件的部门
// 继续用这个部门的 id 作为下一层的 pid
const children = transListToTreeData(list, element.id)
// 如果找到结果, 应该将结果放入当前 element.children 当中
if (children.length > 0) {
element.children = children
}
res.push(element)
}
})
// 3. 返回结果数组
return res
}
console.log(transListToTreeData(oldData, ''))