我有JSON中的县/州/市数据(如下所示)。我想查找所有给定州/国家和城市的城市,需要找到州和国家。
列出国家/地区的所有城市:美国
列出各州的所有城市:阿拉巴马州
列出城市的州和国家:亚当斯维尔
{
"country": "usa",
"states": [
{
"name": "Alabama",
"state_code": "AL",
"cities": [
{
"name": "Abbeville",
"latitude": "31.57184000",
"longitude": "-85.25049000"
},
{
"name": "Adamsville",
"latitude": "33.60094000",
"longitude": "-86.95611000"
}
]
},
{
"name": "Alaska",
"state_code": "AK",
"cities": [
{
"name": "Akutan",
"latitude": "54.13350000",
"longitude": "-165.77686000"
},
{
"name": "Aleutians East Borough",
"latitude": "54.85000000",
"longitude": "-163.41667000"
}
]
}
]
}
答案 0 :(得分:0)
这是内置的数组函数,可帮助您获得所需的内容。
Array.prototype.find()-返回满足所提供测试的数组中第一个元素的值。
要在JSON data
中查找状态对象,可以执行以下操作:
const findState = (name) => data.states.find(state => state.name === name);
let alaska = findState('Alaska');
// { "name"; "Alaska", "state_code": "AK", "cities": [...] }
要查找某个州的城市,请使用上面的findState
获取该州的对象,然后Array.prototype.map()将形成一个仅包含城市名称的数组:
let alaska = findState('Alaska');
let citiesInAlaska = alaska.cities.map(city => city.name);
// [ "Akutan", "Aleutians East Borough" ]