通过国家描述在对象的对象中找到大陆

时间:2015-03-30 17:42:07

标签: jquery

我找到了这个对象: http://pamelafox-samplecode.googlecode.com/svn/trunk/petition_world/geodata.py

我想到用谷歌地图上的shor_country描述解析它。

那么我如何在jquery中使用shordescription来获取continentname,例如“SE”?

我尝试了很多for循环的组合:

    var length = 0;
 for (var contin in continents) {
  console.log(contin);
  length++;
 }
   console.log(length);
   var cont = "";
    for (var a = 0; a < length; a++) {
    var contLength = 0;
    console.log(continents[a]);
    for (var countr in continents[a].countries) {
        contLength++;
    }
    console.log(contLength);
    for (var i = 0; i < contLength; i++) {
        if (continents[a].countries[i] == shortCountry) {
            cont = continents[a].name;
            console.log(cont);
        }
    }
}

但它确实不起作用。

对象::

    continents = {
      "AF": {
          "name": "Africa",
          "center": [1.054628,29.53125],
          "countries": [
         "DZ",
         "AO",
        "BJ",
         "BW",
         "BF",
             "BI",
         "CM",
        "CV",
         "CF",
         "TD",
         "KM",
         "CD",
         "CG",
         "CI",
         "DJ",
         "EG",
         "GQ",
         "ER",
         "ET",
         "GA",
         "GM",
         "GH",
         "GN",
         "GW",
         "KE",
         "LS",
         "LR",
         "LY",
         "MG",
         "MW",
         "ML",
         "MR",
         "MU",
         "YT",
         "MA",
         "MZ",
         "NA",
         "NE",
         "NG",
         "RE",
         "RW",
         "SH",
         "ST",
         "SN",
         "SC",
         "SL",
         "SO",
         "ZA",
         "SD",
         "SZ",
         "TZ",
         "TG",
         "TN",
         "UG",
         "EH",
         "ZM",
         "ZW"
          ]
      },
      "AS": {
          "name": "Asia",
          "center": [30.448674,125.15625],
          "countries": [
    "AF",
            "AM",
    "AZ",
    "BH",
    "BD",
    "BT",
    "IO",
    "BN",
    "KH",
    "CN",
    "CX",
    "CC",
    "CY",
    "GE",
    "HK",
    "IN",
    "ID",
    "IR",
    "IQ",
    "IL",
    "JP",
    "JO",
    "KZ",
    "KP",
    "KR",
    "KW",
    "KG",
    "LA",
    "LB",
    "MO",
            "MY",
    "MV",
    "MN",
    "MM",
    "NP",
    "OM",
    "PK",
    "PS",
    "PH",
    "QA",
    "SA",
    "SG",
    "LK",
    "SY",
    "TW",
            "TH",
    "TL",
    "TR",
    "TM",
    "AE",
    "UZ",
    "VN",
    "YE"
          ]
      },
      "EU": {
          "name": "Europe",
          "center": [45.521744,21.972656],
          "countries": [
    "AX",
    "AL",
    "AD",
    "AT",
    "BY",
    "BE",
    "BA",
    "BG",
    "HR",
    "CZ",
            "DK",
    "EE",
    "FO",
    "FI",
    "FR",
    "DE",
    "GI",
    "GR",
    "GG",
    "VA",
    "HU",
            "IS",
    "IE",
    "IM",
    "IT",
    "JE",
    "LV",
    "LI",
    "LT",
    "LU",
    "MK",
    "MT",
    "MD",
    "MC",
    "ME",
    "NL",
    "NO",
    "PL",
    "PT",
    "RO",
    "RU",
    "SM",
    "RS",
    "SK",
    "SI",
    "ES",
    "SJ",
    "SE",
    "CH",
    "UA",
    "GB"
          ]
      },
      "NA": {
          "name": "North America",
          "center": [47.694974,-94.042969],
          "countries": [
    "AI",
    "AG",
    "AW",
    "BS",
    "BB",
    "BZ",
    "BM",
    "VG",
    "CA",
    "KY",
    "CR",
    "CU",
    "DM",
    "DO",
    "SV",
    "GL",
    "GD",
    "GP",
    "GT",
    "HT",
    "HN",
    "JM",
    "MQ",
    "MX",
    "MS",
    "AN",
    "NI",
    "PA",
    "PR",
    "BL",
    "KN",
    "LC",
    "MF",
    "PM",
    "VC",
    "TT",
    "TC",
    "US",
    "VI"
          ]
      },
      "SA": {
          "name": "South America",
          "center": [-4.039618,-65.039062],
         "countries": [
    "AR",
    "BO",
    "BR",
    "CL",
    "CO",
    "EC",
    "FK",
    "GF",
    "GY",
    "PY",
    "PE",
    "SR",
    "UY",
    "VE"
          ]
      },
      "OC": {
          "name": "Oceania",
          "center": [-8.05923,142.734375],
          "countries": [
    "AS        ",
    "AU",
    "CK",
    "FJ",
    "PF",
    "GU",
    "KI",
    "MH",
    "FM",
    "NR",
    "NC",
    "NZ",
    "NU",
    "NF",
    "MP",
    "PW",
    "PG",
    "PN",
    "WS",
    "SB",
    "TK",
    "TO",
    "TV",
    "UM",
    "VU",
    "WF"
          ]
      },
      "AN": {
          "name": "Antarctica",
          "center": [-78.836065,39.375],
          "countries": [
    "AQ",
    "BV",
    "TF",
    "HM",
    "GS"
          ]
      },
    }

1 个答案:

答案 0 :(得分:3)

试试这个:

function getContinent(country){
  for(continent in continents){
    if(continents[continent].countries.indexOf(country) > -1){
      return continent;
    }
  }
}