【数组】一维数组转换成tree

726 阅读1分钟

一维数组:

let arr = [  
	{ id: 1, name: "部门1", pid: 0 },  
	{ id: 2, name: "部门2", pid: 1 },  
	{ id: 3, name: "部门3", pid: 1 },  
	{ id: 4, name: "部门4", pid: 2 },  
	{ id: 5, name: "部门5", pid: 2 }
];

期望的tree结构:

[{
  id: 1, 
  name: "部门1", 
  pid: 0,
  children: [
    {
        id: 2, 
        name: "部门2", 
        pid: 1,
        chidlren: [
            { id: 4, name: "部门4", pid: 2 }, 
            { id: 5, name: "部门5", pid: 2 }
        ]
    },
    { id: 3, name: "部门3", pid: 1 }
  ]
}]

pid与id进行对比,来确定该条数据属于哪一条数据的children,比如pid为1,它就是id为1的children。