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: 3},
{id: 5, name: '部门5', pid: 4},
]
function arrToTree(arr) {
if (!Array.isArray(arr) || !arr.length) return
let map = {}
arr.forEach(item => {
map[item.id] = item
})
let roots = []
arr.forEach(item => {
const parent = map[item.pid]
if (parent) {
(parent.children || (parent.children = [])).push(item)
} else {
roots.push(item)
}
})
return roots
}
console.log(arrToTree(arr))
无脑 扁平数据结构转树结构
最新推荐文章于 2022-11-18 21:25:18 发布