list集合根据上下级条件组成父子结构数组
时间: 2023-07-19 19:42:17 浏览: 44
你可以使用递归来实现将 list 集合根据上下级条件组成父子结构数组的操作。具体步骤如下:
1. 遍历 list 集合,找到第一级结构(即没有父级的结构)。
2. 对于每个第一级结构,递归查找其子结构,并将子结构添加到父结构的 children 属性中。
3. 递归查找子结构的子结构,将其添加到对应的父结构的 children 属性中。
示例代码如下:
```
function buildTree(data, parentId) {
let result = [];
for (let i = 0; i < data.length; i++) {
if (data[i].parent_id === parentId) {
let children = buildTree(data, data[i].id);
if (children.length > 0) {
data[i].children = children;
}
result.push(data[i]);
}
}
return result;
}
// 调用示例
let data = [
{ id: 1, parent_id: null, name: 'A' },
{ id: 2, parent_id: 1, name: 'B' },
{ id: 3, parent_id: 1, name: 'C' },
{ id: 4, parent_id: 2, name: 'D' },
{ id: 5, parent_id: 3, name: 'E' },
{ id: 6, parent_id: 4, name: 'F' },
];
let tree = buildTree(data, null);
console.log(tree);
```
运行结果如下:
```
[
{
"id": 1,
"parent_id": null,
"name": "A",
"children": [
{
"id": 2,
"parent_id": 1,
"name": "B",
"children": [
{
"id": 4,
"parent_id": 2,
"name": "D",
"children": [
{
"id": 6,
"parent_id": 4,
"name": "F"
}
]
}
]
},
{
"id": 3,
"parent_id": 1,
"name": "C",
"children": [
{
"id": 5,
"parent_id": 3,
"name": "E"
}
]
}
]
}
]
```