使用场景:当数据结构为平铺时,需要将该结构转换为带有层级的树结构
const getTree = () => {
const arr = [
{ id: 2, parentId: 0, text: '一级节点' },
{ id: 21, parentId: 2, text: '二级节点' }
]
const idMap = {}
arr.forEach(item => {
idMap[item.id] = item
})
const result = []
for (const idMapKey in idMap) {
if(idMap[idMap[idMapKey].parentId]) {
if(idMap[idMap[idMapKey].parentId].children) {
idMap[idMap[idMapKey].parentId].children.push(idMap[idMapKey])
} else {
idMap[idMap[idMapKey].parentId].children = [idMap[idMapKey]]
}
} else {
result.push(idMap[idMapKey])
}
}
console.log(result)
}