![](/img/trans.png)
[英]Building a JSON from a database query of country, state, city and each cities latitude/longitude
[英]Find all cities in a country/state or finding the state/country given a city from JSON data
我在 JSON 中有縣/州/城市數據(如下所示)。 我想找到給定州/國家和城市的所有城市,需要找到 state 和國家。
列出國家/地區的所有城市:美國
列出各州的所有城市:阿拉巴馬州
列出 state 和城市的國家:亞當斯維爾
{
"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"
}
]
}
]
}
這里有內置的 Array 函數,可以幫助你得到你想要的。
Array.prototype.find() - 返回滿足所提供測試的數組中第一個元素的值。
要在 JSON data
中找到 state object,您可以執行以下操作:
const findState = (name) => data.states.find(state => state.name === name);
let alaska = findState('Alaska');
// { "name"; "Alaska", "state_code": "AK", "cities": [...] }
要在 state 中查找城市,請使用上述findState
獲取 state object,然后Array.prototype.map()將形成一個僅包含城市名稱的數組:
let alaska = findState('Alaska');
let citiesInAlaska = alaska.cities.map(city => city.name);
// [ "Akutan", "Aleutians East Borough" ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.