实现 convert 方法,把原始 list 转换成树形结构,要

2020-05-07  本文已影响0人  一个被程序员耽误的厨师
function convert(list) {
    const res = []
    const map = list.reduce((res, v) => (res[v.id] = v, res), {});
    console.log(map);
    for (const item of list) {
        if (item.parentId === 0) {
            res.push(item)
            continue
        }
        if (item.parentId in map) {
            const parent = map[item.parentId]
            console.log(parent);
            parent.children = parent.children || []
            parent.children.push(item)
        }
    }
    return res
}
let list = [
  { id: 1, name: '部门A', parentId: 0 },
  { id: 2, name: '部门B', parentId: 0 },
  { id: 3, name: '部门C', parentId: 1 },
  { id: 4, name: '部门D', parentId: 1 },
  { id: 5, name: '部门E', parentId: 2 },
  { id: 6, name: '部门F', parentId: 3 },
  { id: 7, name: '部门G', parentId: 2 },
  { id: 8, name: '部门H', parentId: 4 }
];
convert(list);
上一篇 下一篇

猜你喜欢

热点阅读