项目中用到区域是数形结构数组,需标记每层层级。从网上没有找到合适的解法,于是自己试出一个认为不错的办法。其实很简单,只在遍历数组的入参里增加一个层级参数,后面每深入一层则层级增加一级。如下代码:
function arrayFlagLevel(array, level) {
if (!array || !array.length) return;
array.forEach(item => {
item.level = level;
if (item.children && item.children.length) {
arrayFlagLevel(item.children, level + 1);
}
})
};
arrayFlagLevel(data, 0);
只需记住,给个标记层级的入参,每次深入遍历子集层级入参增加一级,就这么简单。
/** 更新 - - 增加一个demo start **/
let array = [{name:'广东',code:'001',children: [{name: '广州',code: '001001', children: [{name: '白云区',code: '001001002', children: [{name: '建设路店',code: '001001002002'}]}]}]},{name: '广西',code: '002',children: [{name: '北海',code: '002002'}]},{name: '福建',code: '003'}]
把数组array传入函数arrayFlagLevel(array, 0)后打印截图如下:
截图1:
截图2:
不清楚某些网友干啥同级里level增加,我自己用的都不会,只会每下一级增加1