我需要显示嵌套 JSON 数据的父级和子级。请查找以下示例 JSON 数据
[
{
"name": "India",
"children": [
{
"name": "Delhi",
"children": [
{
"name": "South Delhi"
},
{
"name": "North Delhi"
}
]
},
{
"name": "Tamil Nadu",
"children": [
{
"name": "Chennai"
},
{
"name": "Coimbatore"
}
]
}
]
},
{
"name": "America",
"chilren": [
{
"name": "California",
"children": [
{
"name": "Trinity"
},
{
"name": "Yolo"
}
]
},
{
"name": "Florida",
"children": [
{
"name": "Bradford"
},
{
"name": "Calhoun"
}
]
}
]
}
]
在上面的json数据中。如果我搜索名称“Yolo”,我需要得到 America -> California -> Yolo 结果。你能帮忙吗?
请找到我编写的以下代码,这仅显示子项,但我也需要父项
searchRecursive(value) {
for (var i = 0; i < value.length; i++) {
let lowerCaseName = value[i]['name'].toLowerCase();
if (lowerCaseName.includes('yolo')) {
this.searchedItems.push(value[i]);
} else if (value[i]['children']) {
if (value[i]['children'].length > 0) {
this.searchRecursive(value[i]['children']);
}
}
}
return this.searchedItems;
}
最佳答案
根据您提供的数组,您可以执行以下操作:
let searchTerm = 'Yolo';
let reduced = countries.reduce((acc, val) => {
let city = val.children[0].children.filter(city => (city.name == searchTerm)).pop();
let country = val.name;
let state = val.children[0].name;
if (city) {
return {
country,
state,
city: city.name
}
}
});
变量reduce将保存该值:
{ country: 'America', state: 'California', city: 'Yolo' }
关于javascript - 需要在 Javascript 或 Angular 搜索时显示 JSON 中的父级和子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59511904/