这是一个地理位置的一位数组,现在需要格式化成自己更好操作的三维数组;
观察发现其实这个一维数组是有规律的,省份的surperId全部都是0;市的suserId又对应省的id,区的 suserId又对应市的id;这样就很好写了;
首先,创建一个过滤获取数组的方法,该方法返回需要的数组,比如说传入'0',就返回所有的省份
/**
* 过滤数组并排序工具.L
*/
let filterAddress = (num)=>{
let backArr=[];
for(let val of addressList){
if(val.superId==num)backArr.push(val)
}
backArr.sort(function(a, b){return a.id - b.id})
return backArr;
};
接下来就是根据省的Id来添加市,根据市的id来添加区,那么代码就很好写了
/**
* 格式化三级省市区数据.L
*/
let getAddList = ()=>{
let provinces = filterAddress('0');
for(let province of provinces){
province.citys = filterAddress(province.id);
for(let city of province.citys){
city.county = filterAddress(city.id);
}
}
return provinces
}
最后返回的provinces就是格式好的省市区数据了