let objTree = [
{
id: 1,
name: 'a',
parentId: 0,
},
{
id: 2,
name: 'b',
parentId: 1,
},
{
id: 3,
name: 'c',
parentId: 1,
},
{
id: 4,
name: 'd',
parentId: 1,
},
]
function toTree() {
let map = new Map()
let res = []
objTree.forEach((item) => {
map.set(item.id, item)
})
objTree.map((item) => {
let parent = map.get(item.parentId)
if (parent) {
parent.children = parent.children || []
parent.children.push(item)
} else {
res.push(item)
}
})
return res
}
console.log(toTree())