利用对象引用传递
**JS
const obj = [
{ id: 1, name: '超级管理' },
{ id: 2, name: '用户管理', parent_id: 1 },
{ id: 3, name: '部门管理', parent_id: 1 },
{ id: 4, name: '日志管理', parent_id: 1 },
{ id: 5, name: '操作用户', parent_id: 4 },
{ id: 6, name: '查看用户', parent_id: 5 },
{ id: 7, name: '用户新增', parent_id: 5 },
{ id: 8, name: '用户删除' },
{ id: 9, name: '用户修改', parent_id: 5 },
{ id: 10, name: '操控部门', parent_id: 3 },
];
let array; array = {};
let returnArray; returnArray = [];
obj.forEach(i => {
i['children'] = [];
array[i.id] = i;
});
obj.forEach(i => {
if (i.parent_id !== undefined) {
array[i.parent_id].children.push(i);
} else {
returnArray.push(i);
}
});
console.log(returnArray);
输出结果
[{
"id": 1,
"name": "超级管理",
"children": [{
"id": 2,
"name": "用户管理",
"parent_id": 1,
"children": []
}, {
"id": 3,
"name": "部门管理",
"parent_id": 1,
"children": [{
"id": 10,
"name": "操控部门",
"parent_id": 3,
"children": []
}]
}, {
"id": 4,
"name": "日志管理",
"parent_id": 1,
"children": [{
"id": 5,
"name": "操作用户",
"parent_id": 4,
"children": [{
"id": 6,
"name": "查看用户",
"parent_id": 5,
"children": []
}, {
"id": 7,
"name": "用户新增",
"parent_id": 5,
"children": []
}, {
"id": 9,
"name": "用户修改",
"parent_id": 5,
"children": []
}]
}]
}]
}, {
"id": 8,
"name": "用户删除",
"children": []
}]