js 扁平化数组转树结构对象
时间: 2024-05-23 13:07:40 浏览: 97
扁平化数组转树结构对象是一种常见的数据处理方式,在 JavaScript 中可以通过递归来实现。具体步骤如下:
1. 首先对扁平化数组进行排序,以保证每个父节点在子节点之前处理。
2. 通过递归,遍历整个扁平化数组。如果当前节点是根节点,直接添加到结果数组中;否则,将当前节点添加到父节点的 children 数组中。
3. 最后返回结果数组。
下面是一个示例代码,假设数据格式如下:
```javascript
const arr = [
{ id: 1, name: 'parent', 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 }
];
```
代码如下:
```javascript
function arrayToTree(arr, parentId = null) {
const result = [];
const sortedArr = arr.sort((a, b) => a.parentId - b.parentId);
for (const item of sortedArr) {
if (item.parentId === parentId) {
const children = arrayToTree(sortedArr, item.id);
if (children.length > 0) {
item.children = children;
}
result.push(item);
}
}
return result;
}
const tree = arrayToTree(arr);
console.log(tree);
```
阅读全文