js 根据指定的key将数组转化为tree
时间: 2023-10-06 07:11:44 浏览: 78
js数组转换成tree结构数组
好的,我可以为您提供 JavaScript 的实现方式。同样假设我们有一个包含 id 和 parentId 属性的数组 arr,我们需要将其转化为一棵树。
以下是代码实现:
```javascript
function buildTree(arr) {
const nodeMap = {};
let root = null;
// 遍历数组,构建节点映射
arr.forEach(item => {
const node = { id: item.id, children: [] };
nodeMap[node.id] = node;
if (item.parentId === null) {
root = node;
}
});
// 构建树形结构
arr.forEach(item => {
const node = nodeMap[item.id];
if (item.parentId !== null) {
const parent = nodeMap[item.parentId];
parent.children.push(node);
}
});
return root;
}
```
首先我们定义了一个 nodeMap 对象,用于存储节点信息。然后遍历数组 arr,对于每个元素,我们创建一个节点对象并添加到 nodeMap 中。如果该节点的 parentId 为 null,则将其作为根节点 root。接着我们再次遍历数组 arr,对于每个元素,找到对应的节点和其父节点,将其添加到父节点的 children 数组中。最后返回根节点即可。
希望这个答案能够帮到您,如果您有任何问题或疑问,可以随时向我提问。
阅读全文