在项目过程中,使用到一些组件对于数据格式要求,无法实时找到最新的,所以只有自己动手做数据改造,以前是项目中的一些处理,随便记录一下。
原来的数据格式是酱紫的~
我想要的数据格式
接下来贴出格式处理的代码,供大家参考~
//引入数据
import districts from '@/common/districts.js';
let districtssheng = districts.province_list
let districtsShi = districts.city_list
let districtsQu = districts.county_list
let newArrSheng = []
for(var i in districtssheng){
// 第一层循环遍历出省份
let districtsShengObj = {}
districtsShengObj.value = i
districtsShengObj.label = districtssheng[i]
let newArrShi = []
for(var s in districtsShi){
//第二层循环出市
if(i.substring(0,2) === s.substring(0,2) ){
// 以城市编码的前两位作为匹配项
let shiobj={};
shiobj.value = s
shiobj.label = districtsShi[s]
let newArrQU = []
for(var q in districtsQu){
//第三层循环遍历出区
if(s.substring(0,4) ==q.substring(0,4) ){
//市与区以编码的前四位作为匹配
let quobj={};
quobj.value = q
quobj.label = districtsQu[q]
newArrQU.push(quobj);
shiobj.children=newArrQU;
}
}
newArrShi.push(shiobj);
districtsShengObj.children=newArrShi;
//添加到所需的对象里
}
}
newArrSheng.push(districtsShengObj) // 最后添加到数组里 就完成啦
}
console.log("newArrSheng",JSON.stringify(newArrSheng)); //看看最后的打印效果
//newArrSheng [{"value":"110000","label":"北京市","children":[{"value":"110100","label":"北京市","children":[{"value":"110101","label":"东城区"},{"value":"110102","label":"西城区"},{"value":"110105","label":"朝阳区"},{"value":"110106","label":"丰台区"},{"value":"110107","label":"石景山区"},{"value":"110108","label":"海淀区"},{"value":"110109","label":"门头沟区"},{"value":"110111","label":"房山区"},{"value":"110112","label":"通州区"},{"value":"110113","label":"顺义区"},{"value":"110114","label":"昌平区"},{"value":"110115","label":"大兴区"},{"value":"110116","label":"怀柔区"},{"value":"110117","label":"平谷区"},{"value":"110118","label":"密云区"},{"value":"110119","label":"延庆区"}]}]},
处理后的文档数据,现有需要的小伙伴可以直接留言提取~
链接: https://pan.baidu.com/s/12VWpe1UTRwEyvZ7jBl2bnQ
提取码: 8vtk
2023/5/30数据已更新
这就完成啦!!!欢迎大家有新的建议或者更加简洁的处理方式可以可以留言多多指教哦~