编辑代码

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)