function getArea(json, code) {
let names = [];
let codes = [];
function findCity(list, code, father) {
const index = list.findIndex(ev => {
return ev.value === code;
});
if (index > -1) {
const child = list[index];
names.unshift(child.label);
codes.unshift(child.value);
father && names.unshift(father.label) && codes.unshift(father.value);
father && findCity(json || [], father.value);
return;
}
list.map(item => {
if (item.children) {
findCity(item.children || [], code, item);
}
});
}
findCity(json, code);
names = [...new Set(names)];
codes = [...new Set(codes)];
return { codes, names };
}
const list = getArea(tempData.children, '130302');
console.log(list);
tempData.children数据为:
{
"children": [
{
"label": "河北省",
"value": "130000",
"children": [
{
"label": "石家庄市",
"value": "130100",
"children": [
{
"label": "长安区",
"value": "130102"
},
{
"label": "桥西区",
"value": "130104"
}
]
},
{
"label": "秦皇岛市",
"value": "130300",
"children": [
{
"label": "海港区",
"value": "130302"
},
{
"label": "山海关区",
"value": "130303"
}
]
}
]
}
]
}