将一维数组格式化三维数组

这是一个地理位置的一位数组,现在需要格式化成自己更好操作的三维数组;

观察发现其实这个一维数组是有规律的,省份的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就是格式好的省市区数据了

vant的picker组件使用多列选择器的时候,columns用计算属性是最好的选择!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值