前端学习小知识(3)---- 如何自定义一个将城市编号转换为省市二级的函数

tech2022-08-07  132

我们先来看看三级省市函数

/** * 根据编号获取城市名(数组形式) * @param id 编号 * @returns [String] 城市名(省/市/区县) */ function getCityText1(id) { if(!id){ return ""; } for(var i in provinces){ if(provinces[i].id == id){ return provinces[i].text; } if(provinces[i].id.substr(0,2) != id.substr(0,2)){ continue; } var citys = provinces[i].children; for(var j in citys){ if(citys[j].id == id){ return provinces[i].text + citys[j].text; } if(citys[j].id.substr(0,4) != id.substr(0,4)){ continue; } var countrys = citys[j].children; for(var k in countrys){ if(countrys[k].id == id){ return [provinces[i].text, citys[j].text, countrys[k].text]; } } } } }

 然后再将其转换为(省/市/区县)这样的格式,后面需要将城市编号转换时可以直接调用这个函数来进行转换

/** * 根据编号获取城市名 * @param id 编号 * @returns String 城市名 */ function getCityText2(id) { var arr = getCityText1(id); return arr[0]+"/"+arr[1]+"/"+arr[2]; }

现在我们来看看省市二级函数

/** * 根据编号获取城市名(数组形式) * @param id 编号 * @returns [String] 城市名(省/市) */ function getCityText3(id) { if(!id){ return []; } for(var i in provinces){ if(provinces[i].id == id){ return [provinces[i].text]; } if(provinces[i].id.substr(0,2) != id.substr(0,2)){ continue; } var citys = provinces[i].children; for(var j in citys){ if(citys[j].id == id){ return [provinces[i].text,citys[j].text]; } } } }

 然后对应的转换函数如下:

/** * 根据编号获取城市名 * @param id 编号 * @returns String 城市名 */ function getCityText4(id) { var arr = getCityText3(id); return arr[0]+"/"+arr[1]; }

注意:这两个是要一起使用的

当我们前台需要将城市编码进行转换时就可以直接调用 getCityText2 或 getCityText4,这两个函数

最新回复(0)