List To Tree
记录一下数组转树的方法
let list = [
{ id: 0, parentId: null, name: '生物' },
{ id: 1, parentId: 0, name: '动物' },
{ id: 2, parentId: 0, name: '植物' },
{ id: 3, parentId: 0, name: '微生物' },
{ id: 4, parentId: 1, name: '哺乳动物' },
{ id: 5, parentId: 1, name: '卵生动物' },
{ id: 6, parentId: 2, name: '种子植物' },
{ id: 7, parentId: 2, name: '蕨类植物' },
{ id: 8, parentId: 4, name: '大象' },
{ id: 9, parentId: 4, name: '海豚' },
{ id: 10, parentId: 4, name: '猩猩' },
{ id: 11, parentId: 5, name: '蟒蛇' },
{ id: 12, parentId: 5, name: '麻雀' }
]
function traverseTree(list) {
const res = []
const map = new Map()
list.forEach(item => {
map.set(item.id, item)
});
list.forEach(item => {
const parent = map.get(item.parentId)
if(parent) {
parent.children = [...parent.children || [], item] // 耍帅
} else {
res.push(item)
}
});
return res
}
console.log(traverseTree(list))Updated on 6/19/2023