下面的数据是部门的数据,parentid决定着部门的上下级。假定已经拿到数据库中的数组,怎么通过js处理变成下面这种上下级结构的?
[
{
parentid:0,
name:‘春树集团’,
children:[{...}]
}
]
下面的数据是部门的数据,parentid决定着部门的上下级。假定已经拿到数据库中的数组,怎么通过js处理变成下面这种上下级结构的?
[
{
parentid:0,
name:‘春树集团’,
children:[{...}]
}
]
const data = [{
id: 1,
parentId: 0
}, {
id: 2,
parentId: 0
}, {
id: 3,
parentId: 2
}, {
id: 4,
parentId: 3
}];
const array2tree = (arr, parent = 0) => {
let result = [];
arr.forEach(item => {
if (parent !== item.parentId) return;
result.push({
...item,
children: array2tree(arr, item.id)
})
});
return result;
}
console.log(array2tree(data));
递归处理一下就好了
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
遍历一下就行了。
好了,
rootList
就是你要的。[{"id":1,"parentId":0,"children":[{"id":2,"parentId":1}]}]