const arr = [
{"name": "相城区", "code": 320507, "parentCode": 320500, "type": 2},
{"name": "辽宁省", "code": 210000, "parentCode": null, "type": 0},
{"name": "大兴区", "code": 110115, "parentCode": 110100, "type": 2},
{"name": "北京市", "code": 110000, "parentCode": null, "type": 0},
{"name": "太仓市", "code": 320585, "parentCode": 320500, "type": 2},
{"name": "南京市", "code": 320100, "parentCode": 320000, "type": 1},
{"name": "中山区", "code": 210202, "parentCode": 210200, "type": 2},
{"name": "梁溪区", "code": 320213, "parentCode": 320200, "type": 2},
{"name": "溪湖区", "code": 210503, "parentCode": 210500, "type": 2},
{"name": "苏州市", "code": 320500, "parentCode": 320000, "type": 1},
{"name": "姑苏区", "code": 320508, "parentCode": 320500, "type": 2},
{"name": "滨湖区", "code": 320211, "parentCode": 320200, "type": 2},
{"name": "本溪市", "code": 210500, "parentCode": 210000, "type": 1},
{"name": "沙河口区", "code": 210204, "parentCode": 210200, "type": 2},
{"name": "六合区", "code": 320116, "parentCode": 320100, "type": 2},
{"name": "北京市", "code": 110100, "parentCode": 110000, "type": 1},
{"name": "大连市", "code": 210200, "parentCode": 210000, "type": 1},
{"name": "秦淮区", "code": 320104, "parentCode": 320100, "type": 2},
{"name": "玄武区", "code": 320102, "parentCode": 320100, "type": 2},
{"name": "吴中区", "code": 320506, "parentCode": 320500, "type": 2},
{"name": "浦口区", "code": 320111, "parentCode": 320100, "type": 2},
{"name": "长海县", "code": 210224, "parentCode": 210200, "type": 2},
{"name": "东城区", "code": 110101, "parentCode": 110100, "type": 2},
{"name": "江苏省", "code": 320000, "parentCode": null, "type": 0},
{"name": "惠山区", "code": 320206, "parentCode": 320200, "type": 2},
{"name": "南芬区", "code": 210505, "parentCode": 210500, "type": 2},
{"name": "无锡市", "code": 320200, "parentCode": 320000, "type": 1},
{"name": "延庆区", "code": 110119, "parentCode": 110100, "type": 2}
];
const arrayToTreeing = (data = [], options) => {
if(Array.isArray(data)) {
if(!data.length) return data;
} else {
return [data]
}
const {
pAttr,
cAttr,
auxiliary: {
attr,
default: _default
}
} = {
pAttr: 'code',
cAttr: 'parentCode',
auxiliary: {
attr: 'type',
default: 2
},
sort: 0,
...options
};
let result = [],
itemMap = {};
for (let item of data) {
const pCode = item[pAttr] - 0,
cCode = item[cAttr] - 0,
children = item[attr] === _default ? null : [];
if(!itemMap[pCode]) {
itemMap[pCode] = {
children
}
}
itemMap[pCode] = {
...item,
children: itemMap[pCode]?.children
}
const threeMap = itemMap[pCode];
if(!cCode) {
result.push(threeMap);
} else {
if(!itemMap[cCode]) {
itemMap[cCode] = {
children: []
}
}
itemMap[cCode].children.push(threeMap);
}
}
return result;
}
console.log(arrayToTreeing(arr));
数组整理为树状结构
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 树状数组能解决的问题 树状数组,也称作“二叉索引树”(Binary Indexed Tree)或 Fenwick ...