首页 >> js开发 >> jsJS遍历树层级关系实现原理解析js大全
jsJS遍历树层级关系实现原理解析js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
1.遍历树的层级关系1)先整理数据2)找到id和数据的映射关系3)然后找到父节点的数据,进行存储代码如下
test() {
const list = [
{ id: "123", parentId: "", children: [] },
{ id: "124", parentId: "123", children: [] },
{ id: "125", parentId: "124", children: [] },
{ id: "126", parentId: "125", children: [] },
{ id: "127", parentId: "126", children: [] }
];
const mapList = [];
const tree = [];
list.forEach(item => {
mapList[item.id] = item;
});
list.forEach(item => {
const parentNode = mapList[item.parentId];
if (!parentNode) {
if (!item.children) {
item.children = []
}
tree.push(item);
} else {
if (!parentNode.children) {
parentNode.children = []
}
parentNode.children.push(item);
}
});
console.log("tree", tree);
},
test() {
const list = [
{ id: "123", parentId: "", children: [] },
{ id: "124", parentId: "123", children: [] },
{ id: "125", parentId: "124", children: [] },
{ id: "126", parentId: "125", children: [] },
{ id: "127", parentId: "126", children: [] }
];
const mapList = [];
const tree = [];
list.forEach(item => {
mapList[item.id] = item;
});
list.forEach(item => {
const parentNode = mapList[item.parentId];
if (!parentNode) {
if (!item.children) {
item.children = []
}
tree.push(item);
} else {
if (!parentNode.children) {
parentNode.children = []
}
parentNode.children.push(item);
}
});
console.log("tree", tree);
},以上就是本文的全部内容,希望对大家的学习有所帮助。
test() {
const list = [
{ id: "123", parentId: "", children: [] },
{ id: "124", parentId: "123", children: [] },
{ id: "125", parentId: "124", children: [] },
{ id: "126", parentId: "125", children: [] },
{ id: "127", parentId: "126", children: [] }
];
const mapList = [];
const tree = [];
list.forEach(item => {
mapList[item.id] = item;
});
list.forEach(item => {
const parentNode = mapList[item.parentId];
if (!parentNode) {
if (!item.children) {
item.children = []
}
tree.push(item);
} else {
if (!parentNode.children) {
parentNode.children = []
}
parentNode.children.push(item);
}
});
console.log("tree", tree);
},
test() {
const list = [
{ id: "123", parentId: "", children: [] },
{ id: "124", parentId: "123", children: [] },
{ id: "125", parentId: "124", children: [] },
{ id: "126", parentId: "125", children: [] },
{ id: "127", parentId: "126", children: [] }
];
const mapList = [];
const tree = [];
list.forEach(item => {
mapList[item.id] = item;
});
list.forEach(item => {
const parentNode = mapList[item.parentId];
if (!parentNode) {
if (!item.children) {
item.children = []
}
tree.push(item);
} else {
if (!parentNode.children) {
parentNode.children = []
}
parentNode.children.push(item);
}
});
console.log("tree", tree);
},以上就是本文的全部内容,希望对大家的学习有所帮助。
相关文章:
- js详解Vue中的watch和computedjs大全
- js如何手写一个简易的 Vuexjs大全
- js全网小程序接口请求封装实例代码js大全
- jsvue router-link 默认a标签去除下划线的实现js大全
- jsVUE异步更新DOM - 用$nextTick解决DOM视图的问题js大全
- js微信小程序基于ColorUI构建皮皮虾短视频去水印组件js大全
- js解决element-ui的下拉框有值却无法选中的情况js大全
- js解决VueCil代理本地proxytable无效报错404的问题js大全
- js解决Element中el-date-picker组件不回填的情况js大全
- JavaScriptnuxt.js添加环境变量,区分项目打包环境操作