
如何将嵌套数组转换为具有子级属性的数据格式
本文将演示如何将给定的一维嵌套数组:
[
{
"id": 1,
"key": "",
"name": "系统管理",
"level": 1,
"type": 1,
"icon": "",
"code": "a001",
"parentcode": "",
"num": "a-1",
},
{
"id": 7,
"key": "",
"name": "日志管理",
"level": 1,
"type": 1,
"icon": "",
"code": "a004",
"parentcode": "",
"num": "a-7",
},
{
"id": 8,
"key": "roleadd",
"name": "角色管理",
"level": 2,
"type": 1,
"icon": "",
"code": "b001",
"parentcode": "a001",
"num": "1-1",
},
{
"id": 14,
"key": "logomanage",
"name": "日志管理",
"level": 2,
"type": 1,
"icon": null,
"code": "e001",
"parentcode": "a004",
"num": "1-1",
},
]转换为包含子级属性的树状数据:
[
{
"id": 1,
"key": null,
"name": "系统管理",
"level": 1,
"icon": null,
"num": "a-1",
"children": [
{
"id": 8,
"key": "roleadd",
"name": "角色管理",
"level": 2,
"type": 1,
"icon": null,
"code": "b001",
"parentcode": "a001",
"num": "1-1",
}
]
},
{
"id": 7,
"key": null,
"name": "日志管理",
"level": 1,
"type": 1,
"icon": null,
"num": "a-7",
"children": [
{
"id": 14,
"key": "logomanage",
"name": "日志管理",
"level": 2,
"type": 1,
"icon": null,
"code": "e001",
"parentcode": "a004",
"num": "1-1",
}
]
},
]步骤
javascript 代码示例:
const data = [
{
"id": 1,
"key": "",
"name": "系统管理",
"level": 1,
"icon": "",
"code": "A001",
"parentCode": "",
"num": "A-1",
},
// ...
];
const parentMap = {};
data.forEach((item) => {
parentMap[item.parentCode] = parentMap[item.parentCode] || [];
parentMap[item.parentCode].push(item);
});
const result = [];
data.forEach((item) => {
if (parentMap[item.code]) {
parentMap[item.parentCode].forEach((child) => {
item.children = item.children || [];
item.children.push(child);
});
} else {
result.push(item);
}
});上述代码将创建具有子级属性的树状数据结构,按照给定数组中的层次结构组织元素。
以上就是如何将一维嵌套数组转换为包含子级属性的树状数据?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号