js根据id和pid把List[]中的数组转换为树结构
时间: 2024-09-25 13:19:45 浏览: 47
在JavaScript中,将一个二维数组(list)按照ID和PID转换成树形结构,通常需要递归算法来实现。这种数据结构可以用于模拟网站的菜单或者层级关系。这里是一个基本的例子:
```javascript
function arrayToTree(data, pid = 0) {
let result = [];
for (let i = 0; i < data.length; i++) {
if (data[i].pid === pid) {
const node = {
id: data[i].id,
name: data[i].name,
children: arrayToTree(data, data[i].id), // 递归调用自身,查找子节点
};
result.push(node);
}
}
return result;
}
// 假设你的二维数组(list)如下:
const list = [
{ id: 1, pid: 0, name: '根节点' },
{ id: 2, pid: 1, name: '子节点1' },
{ id: 3, pid: 2, name: '孙子节点1' },
{ id: 4, pid: 1, name: '子节点2', children: [{ id: 5, pid: 4, name: '重孙节点1' }] },
];
// 转换并打印结果
const treeData = arrayToTree(list);
console.log(treeData);
阅读全文