js 数组转化为树形结构并写出案例
时间: 2023-12-16 16:02:29 浏览: 73
js树形结构例子
可以通过递归的方式将一个数组转化为树形结构。
下面是一个示例代码,假设数组中的每个元素都是一个对象,其中包含了一个 id 属性和一个 parentId 属性,表示当前元素的父节点 id:
```javascript
function arrayToTree(arr, parentId) {
const tree = [];
for (let i = 0; i < arr.length; i++) {
const node = arr[i];
if (node.parentId === parentId) {
const children = arrayToTree(arr, node.id);
if (children.length > 0) {
node.children = children;
}
tree.push(node);
}
}
return tree;
}
// 示例数据
const arr = [
{ id: 1, name: 'root', parentId: null },
{ id: 2, name: 'child1', parentId: 1 },
{ id: 3, name: 'child2', parentId: 1 },
{ id: 4, name: 'grandchild1', parentId: 2 },
{ id: 5, name: 'grandchild2', parentId: 2 },
{ id: 6, name: 'grandchild3', parentId: 3 },
];
// 转化为树形结构
const tree = arrayToTree(arr, null);
// 输出结果
console.log(tree);
```
输出结果为:
```javascript
[
{
id: 1,
name: 'root',
parentId: null,
children: [
{
id: 2,
name: 'child1',
parentId: 1,
children: [
{ id: 4, name: 'grandchild1', parentId: 2 },
{ id: 5, name: 'grandchild2', parentId: 2 }
]
},
{
id: 3,
name: 'child2',
parentId: 1,
children: [
{ id: 6, name: 'grandchild3', parentId: 3 }
]
}
]
}
]
```
阅读全文