110000:['北京市', 1],
110100:['北京市', 110000],
110101:['东城区', 110100],
110102:['西城区', 110100],
110105:['朝阳区', 110100],
110106:['丰台区', 110100],
110107:['石景山区', 110100],
110108:['海淀区', 110100],
110109:['门头沟区', 110100],
110111:['房山区', 110100],
110112:['通州区', 110100],
110113:['顺义区', 110100],
110114:['昌平区', 110100],
110115:['大兴区', 110100],
110116:['怀柔区', 110100],
110117:['平谷区', 110100],
110199:['其它区', 110100],
110200:['县', 110000],
110228:['密云县', 110200],
110229:['延庆县', 110200],
如何轉化為:
"86": {
"110000": "北京市",
"120000": "天津市",
"130000": "河北省",
"140000": "山西省",
"150000": "内蒙古自治区",
"210000": "辽宁省",
"220000": "吉林省",
"230000": "黑龙江省",
"310000": "上海市",
"320000": "江苏省",
"330000": "浙江省",
"340000": "安徽省",
"350000": "福建省",
"360000": "江西省",
"370000": "山东省",
"410000": "河南省",
"420000": "湖北省",
"430000": "湖南省",
"440000": "广东省",
"450000": "广西壮族自治区",
"460000": "海南省",
"500000": "重庆市",
"510000": "四川省",
"520000": "贵州省",
"530000": "云南省",
"540000": "西藏自治区",
"610000": "陕西省",
"620000": "甘肃省",
"630000": "青海省",
"640000": "宁夏回族自治区",
"650000": "新疆维吾尔自治区",
"710000": "台湾省",
"810000": "香港特别行政区",
"820000": "澳门特别行政区"
},
"110000": {
"110100": "市辖区"
},
"110100": {
"110101": "东城区",
"110102": "西城区",
"110105": "朝阳区",
"110106": "丰台区",
"110107": "石景山区",
"110108": "海淀区",
"110109": "门头沟区",
"110111": "房山区",
"110112": "通州区",
"110113": "顺义区",
"110114": "昌平区",
"110115": "大兴区",
"110116": "怀柔区",
"110117": "平谷区",
"110228": "密云县",
"110229": "延庆县"
}
這種格式呢?能力有限,實在想不出來,這種能實現轉化嗎?
手機回答,沒辦法給你上代碼,但是大概思路應該是:
1.先理一下你的需求,如果我理解錯了,下面的就不用看了:
你是想把原來的一維的,沒有層級結構的數據按照國家代號,省市代號,地區代號這樣分開,下一級地區的key是上一級省市的key,通過代碼可以直接從國家到省到市,一級一級的找到某地區。
2.首先,你的資料是一個對象,每個屬性是對應值的地區代號,而值是一個數組,第二個元素是他的父節點代號,這就好辦了。
3.先建立一個空物件。
4.循環遍歷原對象。
5.每拿到一個原對象的屬性,先判斷他的值(也就是二值數組)的第二個值,如果是1,說明是頂級地區,也就是省或者直轄市,把這些寫到新建立物件中,寫在86國家代碼那個屬性下,
6.如果拿到的第二個值不是1,說明他不是頂級的省或者市,而是某個地區,去新對像下去找有沒有該程式碼對應的省或地區,如果沒有,就在新物件中新建,有則直接寫到對應程式碼中。
7.這樣就可以按照國家~省/直轄市~地區,的方式劃分開
8.看到你還特意標明了,直轄市,根據你給的數據,如果省名稱和直轄市名稱一樣的話,就表明成直轄市就行了
9.手機打,會有很多不好理解的地方,如果方法不能理解或有錯,請直接忽視
一個簡單的範例如下(來源資料格式非 JSON,故簡單實作中強行 eval 之):
執行結果:
https://windqyoung.github.io/...
隨意轉換.