Open sunbigshan opened 5 years ago
function convert(list) {
// 虚拟第一层结构,用于将所有层级统一化处理
const dummyHead = { 0: { children: [] } };
// map 破坏原数组中对象的引用
// sort 排序
list.map(e => Object.assign({}, e)).sort((a, b) => a.parentId - b.parentId).forEach(e => {
dummyHead[e.id] = e;
const cur = dummyHead[e.parentId];
cur.children ? cur.children.push(e) : cur.children = [e];
});
return dummyHead[0].children;
}
以下数据结构中,id 代表部门编号,name 是部门名称,parentId 是父部门编号,为 0 代表一级部门,现在要求实现一个 convert 方法,把原始 list 转换成树形结构,parentId 为多少就挂载在该 id 的属性 children 数组下,结构如下: