vue 数据转成树结构
时间: 2024-05-09 07:21:45 浏览: 57
首先需要明确数据的格式,例如以以下格式展示:
```javascript
const data = [
{ id: 1, name: 'Node1', parentId: 0 },
{ id: 2, name: 'Node2', parentId: 1 },
{ id: 3, name: 'Node3', parentId: 1 },
{ id: 4, name: 'Node4', parentId: 2 },
{ id: 5, name: 'Node5', parentId: 2 },
{ id: 6, name: 'Node6', parentId: 3 },
{ id: 7, name: 'Node7', parentId: 3 }
];
```
我们可以采用递归的方式将其转换成树结构:
```javascript
function buildTree(data, parentId) {
const tree = [];
for (let item of data) {
if (item.parentId === parentId) {
const children = buildTree(data, item.id);
if (children.length) {
item.children = children;
}
tree.push(item);
}
}
return tree;
}
const tree = buildTree(data, 0);
console.log(tree);
```
在上述代码中,我们通过遍历数据,找到其父节点与子节点的关系,在递归调用 `buildTree` 方法时将子节点作为参数继续传递,直至找到所有子节点,最后得到树形结构。
阅读全文