const list = [
{ id: 1, pid: null, name: 'M1部门' },
{ id: 12, pid: 1, name: '李四' },
{ id: 13, pid: 1, name: '王五' },
{ id: 2, pid: null, name: 'M2部门' },
{ id: 21, pid: 1, name: '赵六' },
{ id: 22, pid: 1, name: '周七' },
{ id: 23, pid: 2, name: '吴八' },
{ id: 11, pid: 1, name: '张三' }
]
const res = list.reduce((prev, curr) => {
if (!curr.pid) {
prev.push(curr)
} else {
let o = prev.find(item => item.id === curr.pid)
!o.children && (o.children = [])
o.children.push(curr)
}
return prev
},[])
console.log(res)