处理区域数据【其他】

let area = {
    "province": [{
        "value": "150000",
        "label": "内蒙古自治区",
        "key": "150000"
    }],
    "city": [{
            "value": "150200",
            "label": "包头市",
            "key": "150200"
        },
        {
            "value": "150900",
            "label": "乌兰察布市",
            "key": "150900"
        }
    ],
    "area": [{
            "value": "150222",
            "label": "固阳县",
            "key": "150222"
        },
        {
            "value": "150923",
            "label": "商都县",
            "key": "150923"
        }
    ],
    "town": [{
            "value": "150923101",
            "label": "七台镇",
            "key": "150923101"
        },
        {
            "value": "150923106",
            "label": "小海子镇",
            "key": "150923106"
        }
    ]
}
let keyArr = Object.keys(area)
let index = [0, 3, 4, 6]
let resMap = new Map()

function get(i = 0, res = {}) {
    resMap.set(res.key, res)
    if (i === index.length) {
        return
    }
    const keyString = res.key ? res.key.substring(0, index[i]) : area.province[0].key.substring(0, index[i])
    area[keyArr[i]].forEach(e => {
        if (e.key.substring(0, index[i]) === keyString)  {
            const tempO = {
                ...res,
                [keyArr[i]]: e.label,
                [`${keyArr[i]}Code`]: e.value,
                key: e.key,
            }
            if (resMap.get(res[`${keyArr[i-1]}Code`])) {
                resMap.delete(res[`${keyArr[i-1]}Code`])
            }
            get(i + 1, tempO )
        }
    });
}
get()

let res = Array.from(resMap.values()).map(e => {

    delete e.key
    return e
})
console.log(res);

写在这里是卡了一下 为什么要处理成这样的数据 怕是很难遇到哦 核心是
if (resMap.get(res[${keyArr[i-1]}Code])) {
resMap.delete(res[${keyArr[i-1]}Code])
}
这个代码是判断有没有父级 有父级就删除父级

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值