首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >地区数据整理

地区数据整理

作者头像
hss
发布于 2022-02-25 19:38:29
发布于 2022-02-25 19:38:29
1.4K0
举报
文章被收录于专栏:前端卡卡西前端卡卡西

地区数据整理

代码语言:javascript
复制
var oldArr = [
    { province: '广东省', city: '广州市', district: '天河区' },
    { province: '广东省', city: '广州市', district: '白云区' },
    { province: '广东省', city: '东莞市', district: '常平镇' },
    { province: '广东省', city: '东莞市', district: '虎门镇' },
    { province: '广东省', city: '东莞市', district: '长安镇' },
    { province: '广西省', city: '南宁市', district: '兴宁区' },
    { province: '广西省', city: '南宁市', district: '江南区' },
    { province: '海南省', city: '海口市', district: '琼山区' },
    { province: '海南省', city: '三亚市', district: '海棠区' },
    { province: '海南省', city: '三沙市', district: '南沙区' },
]
var newArr = []
var item = {}   // 区
var item1 = {}  // 市
for (let i = 0; i < oldArr.length; i++) {
    // 没有这个省的
    if (!item[oldArr[i].province]) {
        newArr.push({
            name: oldArr[i].province,
            children: [
                {
                    name: oldArr[i].city,
                    children: [
                        { name: oldArr[i].district }
                    ],
                }
            ]
        })
        item[oldArr[i].province] = oldArr[i].province
        item1[oldArr[i].city] = oldArr[i].city
    } else {
        // 遍历newArr,看看这个省的位置
        for (let j = 0; j < newArr.length; j++) {
            if (newArr[j].name == item[oldArr[i].province]) {
                // 这个省没有这个市,就往省的children添加市
                if (!item1[oldArr[i].city]) {
                    if (newArr[j].name == item[oldArr[i].province]) {
                        newArr[j].children.push({
                            name: oldArr[i].city,
                            children: [
                                {
                                    name: oldArr[i].district,
                                }
                            ],
                        })
                        item1[oldArr[i].city] = oldArr[i].city
                    }
                } else {
                    // 有这个省有这个市了就往市里面的children添加区
                    for (let x = 0; x < newArr[j].children.length; x++) {
                        if (newArr[j].children[x].name == item1[oldArr[i].city]) {
                            newArr[j].children[x].children.push({
                                name: oldArr[i].district,
                            })
                        }
                    }
                }
            }

        }
    }
}
console.log(newArr)
console.log('item', item)
console.log('item1', item1)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 地区数据整理
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档