javascript - 根据json最后一级的value怎么反推层级
本文介绍了javascript - 根据json最后一级的value怎么反推层级的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
现在场景: 省市区根据code选择,前端拿到server返回的区/县的code码,前端需要渲染成 省/市/区 格式;比如拿到海淀区对应的code,需要反推出 北京市-北京-海淀区;
数据结构如下
var region = {
"level": "3",
"cities": [{
"name": "北京市",
"code": "1",
"elements": [{
"name": "北京市",
"code": "35",
"elements": [{
"name": "东城区",
"code": "397",
"elements": []
}, {
"name": "海淀区",
"code": "402",
"elements": []
}]
}]
}, {
"name": "河北省",
"code": "3",
"elements": [{
"name": "石家庄市",
"code": "37",
"elements": [{
"name": "长安区",
"code": "430",
"elements": []
}]
}]
}]
};
即知道402 => 推出 北京市-北京市-海淀区
求解决方案, 感谢
解决方案
用递归。给个栗子:
function levels(city, code) {
if(city.code == code){
return [city.name];
}
for(let element of city.elements) {
let temp = levels(element, code);
if(temp) {
if(city.name) temp.unshift(city.name);
return temp;
}
}
}
levels({ elements: region.cities }, "430");
这篇关于javascript - 根据json最后一级的value怎么反推层级的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文