一维数组转树结构数组方法
1. 方法
/**
* 将一维数组转换为树结构
* @param {Array} data - 输入的一维数组
* @return {Array} 树结构数组
*/
function arrayToTree(data) {
// 创建一个id映射,用来快速查找元素
const idMap = {};
// 遍历数组,初始化每个元素的children字段,并将其存入idMap
data.forEach(item => {
idMap[item.id] = { ...item, children: [] };
});
// 初始化一个数组,用来存储根节点
const tree = [];
// 再次遍历数组,根据parentId建立树结构
data.forEach(item => {
const { id, parentId } = item;
if (parentId == '' || parentId == null || parentId == undefined) {
// 如果parentId为null或undefined,表示是根节点
tree.push(idMap[id]);
} else {
// 否则,将当前元素添加到其父元素的children字段中
if (idMap[parentId]) {
idMap[parentId].children.push(idMap[id]);
}
}
});
return tree;
}
使用注意
- 根元素
parentId的判定条件 - 元素的唯一字段是
id和父级字段是parentId
2.数组结构data
let data = [
{ id: '1', parentId: '' },
{ id: '1_1', parentId: '1' },
{ id: '2', parentId: '' }
];
3.调用
let tree = arrayToTree(data);
打印结果
[
{
“id”: “1”,
“parentId”: “”,
“children”: [
{
“id”: “1_1”,
“parentId”: “1”,
“children”: []
}
]
},
{
“id”: “2”,
“parentId”: “”,
“children”: []
}
]
到此这篇关于JS一维数组转多维数组树的方法的文章就介绍到这了,更多相关JS一维转多维数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END











暂无评论内容