JS一维数组转多维数组树的方法
一维数组转树结构数组方法
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一维转多维数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
bootstrap table插件的分页与checkbox使用详解
这篇文章主要为大家详细介绍了bootstrap table插件的分页与checkbox使用详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-07-07
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
今天小编就为大家分享一篇解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-09-09
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
js,jQuery 排序的实现,网页标签排序的实现,标签排序,需要的朋友可以参考下。2011-04-04
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
这篇文章主要介绍了基于Bootstrap的后台管理面板:Bootstrap Metro Dashboard,对Bootstrap的后台管理面板感兴趣的小伙伴们可以参考一下2016-06-06


最新评论