array 转换为 树结构
时间: 2023-12-17 17:03:27 浏览: 132
将一个数组转换为树结构需要确定每个节点的父子关系,可以通过遍历数组来构建树。假设数组中每个元素都有一个 `id` 属性表示节点的唯一标识,还有一个 `parentId` 属性表示父节点的标识。以下是一个实现树结构转换的示例代码:
```javascript
function arrayToTree(arr) {
// 用一个对象记录每个节点的 id 和子节点数组
const nodeMap = {};
// 存储根节点的数组
const roots = [];
// 遍历数组,构建节点对象
arr.forEach(node => {
const { id, parentId, ...rest } = node;
nodeMap[id] = { id, children: [], ...rest };
if (parentId === null) {
// 如果当前节点是根节点,将其添加到根节点数组中
roots.push(nodeMap[id]);
} else {
// 否则将其添加到父节点的 children 数组中
nodeMap[parentId].children.push(nodeMap[id]);
}
});
// 返回根节点数组
return roots;
}
```
该函数接受一个数组作为参数,遍历数组中的每个元素,将其转换为一个节点对象,并将其添加到节点对象映射表中。如果当前节点是根节点,则将其添加到根节点数组中;否则将其添加到父节点的 children 数组中。最后返回根节点数组即可。
阅读全文