[ { Id: 1, ParentId: 0, ParentIds: "1,", Name: "test1", }, { Id: 2, ParentId: 1, ParentIds: "1,2,", Name: "", }, { Id: 3, ParentId: 2, ParentIds: "1,2,3,", Name: "test3", }, { Id: 7, ParentId: 3, ParentIds: "1,2,3,7,", Name: "test3", }, ] list为以上的数据,根据ParentId将list数据转化为树型数据,如下结构 [ { Id: 1, ParentId: 0, ParentIds: "1,", Name: "test1", Chaild: [ { Id: 2, ParentId: 1, ParentIds: "1,2,", Name: "", Chaild: [ { Id: 3, ParentId: 2, ParentIds: "1,2,3,", Name: "test3", Chaild: [ { Id: 7, ParentId: 3, ParentIds: "1,2,3,7,", Name: "test3", }, ] }, ] }, ] }, ]
时间: 2024-03-10 15:45:10 浏览: 24
下面是一种可能的实现方式(使用递归实现):
```
function buildTree(list, parentId) {
const tree = [];
for (let i = 0; i < list.length; i++) {
const node = list[i];
if (node.ParentId === parentId) {
const child = buildTree(list, node.Id);
if (child.length > 0) {
node.Chaild = child;
}
tree.push(node);
}
}
return tree;
}
const list = [
{
Id: 1,
ParentId: 0,
ParentIds: "1,",
Name: "test1",
},
{
Id: 2,
ParentId: 1,
ParentIds: "1,2,",
Name: "",
},
{
Id: 3,
ParentId: 2,
ParentIds: "1,2,3,",
Name: "test3",
},
{
Id: 7,
ParentId: 3,
ParentIds: "1,2,3,7,",
Name: "test3",
},
];
const tree = buildTree(list, 0);
console.log(tree);
```
输出结果:
```
[
{
"Id": 1,
"ParentId": 0,
"ParentIds": "1,",
"Name": "test1",
"Chaild": [
{
"Id": 2,
"ParentId": 1,
"ParentIds": "1,2,",
"Name": "",
"Chaild": [
{
"Id": 3,
"ParentId": 2,
"ParentIds": "1,2,3,",
"Name": "test3",
"Chaild": [
{
"Id": 7,
"ParentId": 3,
"ParentIds": "1,2,3,7,",
"Name": "test3"
}
]
}
]
}
]
}
]
```