簡體   English   中英

查找一個國家/州的所有城市或從 JSON 數據中查找給定城市的州/國家

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM