已知一个JavaScript数组arr,元素结构如下:{ sysid:number title: stirng, path:string, presysid:int 1,编写代码将上述数组转换为一个多叉树
时间: 2024-04-16 19:27:14 浏览: 58
多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法).pdf
可以使用递归的方式将给定的数组转换为一个多叉树。以下是一个示例的JavaScript代码:
```javascript
function createTree(arr, parentSysId) {
const tree = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i].presysid === parentSysId) {
const node = {
sysid: arr[i].sysid,
title: arr[i].title,
path: arr[i].path,
children: createTree(arr, arr[i].sysid)
};
tree.push(node);
}
}
return tree;
}
// 示例数据
const arr = [
{ sysid: 1, title: 'Node 1', path: 'path1', presysid: 0 },
{ sysid: 2, title: 'Node 2', path: 'path2', presysid: 1 },
{ sysid: 3, title: 'Node 3', path: 'path3', presysid: 1 },
{ sysid: 4, title: 'Node 4', path: 'path4', presysid: 3 },
{ sysid: 5, title: 'Node 5', path: 'path5', presysid: 3 },
{ sysid: 6, title: 'Node 6', path: 'path6', presysid: 4 }
];
const tree = createTree(arr, 0);
console.log(tree);
```
在上述代码中,`createTree` 函数接收一个数组 `arr` 和一个父节点的 `sysid`。它遍历数组中的每个元素,找到父节点为给定 `sysid` 的元素,然后递归调用 `createTree` 函数来构建该节点的子树。最后,返回构建好的多叉树。
示例数据中的数组 `arr` 表示了一个多叉树的结构,每个元素都有 `sysid`、`title`、`path` 和 `presysid` 属性。通过运行上述代码,可以将该数组转换为对应的多叉树,并将结果打印到控制台上。
阅读全文