数据结构:
{
"province" : [{
"id" : 110000,
"name" : "北京"
}, {
"id" : 120000,
"name" : "天津"
}, {
"id" : 130000,
"name" : "河北"
}
],
"city" : {
"110000" : [{
"id" : 110100,
"name" : "北京市"
}
],
"120000" : [{
"id" : 120100,
"name" : "天津市"
}
],
"130000" : [{
"id" : 130100,
"name" : "石家庄市"
}, {
"id" : 130200,
"name" : "唐山市"
}, {
"id" : 130300,
"name" : "秦皇岛市"
}, {
"id" : 130400,
"name" : "邯郸市"
}, {
"id" : 130500,
"name" : "邢台市"
}, {
"id" : 130600,
"name" : "保定市"
}, {
"id" : 130700,
"name" : "张家口市"
}, {
"id" : 130800,
"name" : "承德市"
}, {
"id" : 130900,
"name" : "沧州市"
}, {
"id" : 131000,
"name" : "廊坊市"
}, {
"id" : 131100,
"name" : "衡水市"
}
]
}
}
这是js代码:
/**
p_uid:省份号
c_uid:城市号
a_uid:区县号
数据源对应的key释义:
province:省份
city:城市
district:区/县
*/
var p_uid = 0;
var c_uid = 0;
var a_uid = 0;
$(function(){
function placePushName(p_uid,c_uid,a_uid){
$.ajax({
type:"get",
url : "../../json/allcity.json",
dataType : "json",
success : function(json){
// console.info(json["city"]);
var city_data;
var data1 = json["province"];
var data2 = json["city"];
// var data3 = json["district"];
var Puid,Cuid,Auid;
var province_code;
for(var i = 0 ; i < data1.length; i++){
province_code = data1[i]["id"];
if(province_code == p_uid){
console.info(data1[i]["name"]);
console.info(data1[i]["id"]);
// Puid = data1[i]["id"];
city_data = data1[i]["id"];
for(var j = 0; j < data2.length; j++){
// data2[i][""+c_uid] == ;c
console.info(data2[j]);
// if(data2[i]["id"] == c_uid){
// console.info(data2[i]["name"]);
// }
}
}
}
// for(var i = 0; i < data3.length; i++){
// Auid = data3[i]["id"];
// if(Auid == Cuid){
// }
// }
}
});
}
placePushName(110000,110100,110100);
});
定义placePushName方法为了通过省市区这3个id值找到对应的name值
-现在希望就是用递归的方式来解决这个问题?请问大家有思路吗
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
按照我的理解给你写一个,我猜你的数据格式应该是这个样子的:
其实不需要递归这么高级的东西,反而麻烦。。。直接遍历就好
数据结构统一成
id: name问题就简化成了根据
id获取name如果改不了数据结构,那就按上面的数据结构建个自己的对象
问题就简化成了根据
id获取name如果还需要“省份-城市-县城”三个
name,那就把XXXXXX拆分出XX0000、XXXX00、XXXXXX,再用上面的数据结构直接获取