简体   繁体   English

用javascript创建二维对象或数组

[英]create 2 dimensional object or array with javascript

I'm trying to build a language menu based on <link rel="alternate"> tags in the head of a website. 我正在尝试基于网站顶部的<link rel="alternate">标签构建语言菜单。

I have to objects, one for continents and one for languages, based on these two objects I try to generate an unordered list like this: 我必须针对这两个对象,针对一个对象,针对大洲的对象,针对语言的对象,我尝试生成这样的无序列表:

<ul>
    <li>Continent
        <ul>
            <li>Countryname - Language</li>
            ...
        </ul>
    </li>
    <li>Continent
        <ul>...</ul>
    </li>
</ul>

I've created the following functions, the problems is, it seems that the created object is overwritten. 我创建了以下函数,问题是似乎创建的对象被覆盖。 I have always only one country per continent. 我在每个大陆上始终只有一个国家。 Could someone please give me a hint how to fix that? 有人可以给我提示如何解决这个问题吗?

I need an Array or Object that i can use to build the unordered list. 我需要一个可用于构建无序列表的数组或对象。 Something like that: 像这样:

  • Continent 1 大陆1
    • Country 1 国家1
      • name 名称
      • lang
    • Country 2 国家2
      • name 名称
      • lang
    • ... ...
  • Continent 2 大陆2
    • Country 1 国家1
      • name 名称
      • lang
    • Country 2 国家2
      • name 名称
      • lang
  • ... ...

Here is my Code: 这是我的代码:

 var continents = { "AF": { "name": "Africa", "countries": { "DZ": "Algeria", "AO": "Angola", "BJ": "Benin", "BW": "Botswana", "BF": "Burkina Faso", "ZW": "Zimbabwe" } }, "AS": { "name": "Asia", "countries": { "AF": "Afghanistan", "AM": "Armenia", "HK": "Hong Kong SAR China", "IN": "India", "ID": "Indonesia", "JP": "Japan", "KZ": "Kazakhstan", "TM": "Turkmenistan", "AE": "United Arab Emirates", "UZ": "Uzbekistan", "VN": "Vietnam", "YE": "Yemen" } }, "EU": { "name": "Europe", "countries": { "AL": "Albania", "AD": "Andorra", "AT": "Austria", "BY": "Belarus", "BE": "Belgium", "BA": "Bosnia and Herzegovina", "BG": "Bulgaria", "HR": "Croatia", "CY": "Cyprus", "CZ": "Czech Republic", "DK": "Denmark", "DD": "East Germany", "EE": "Estonia", "FO": "Faroe Islands", "FI": "Finland", "FR": "France", "DE": "Germany", "GI": "Gibraltar", "GR": "Greece", "GG": "Guernsey", "HU": "Hungary", "IS": "Iceland", "IE": "Ireland", "IM": "Isle of Man", "IT": "Italy", "JE": "Jersey", "LV": "Latvia", "LI": "Liechtenstein", "LT": "Lithuania", "LU": "Luxembourg", "MK": "Macedonia", "MT": "Malta", "FX": "Metropolitan France", "MD": "Moldova", "MC": "Monaco", "ME": "Montenegro", "NL": "Netherlands", "NO": "Norway", "PL": "Poland", "PT": "Portugal", "RO": "Romania", "RU": "Russia", "SM": "San Marino", "RS": "Serbia", "CS": "Serbia and Montenegro", "SK": "Slovakia", "SI": "Slovenia", "ES": "Spain", "SJ": "Svalbard and Jan Mayen", "SE": "Sweden", "CH": "Switzerland", "UA": "Ukraine", "SU": "Union of Soviet Socialist Republics", "GB": "United Kingdom", "VA": "Vatican City", "AX": "Åland Islands" } }, "AU": { "name": "Australia", "countries": { "AS": "American Samoa", "AQ": "Antarctica", "AU": "Australia", "BV": "Bouvet Island", "UM": "US Minor Outlying Islands", "VU": "Vanuatu", "WF": "Wallis and Futuna" } }, "AM": { "name": "America", "countries": { "AI": "Anguilla", "AG": "Antigua and Barbuda", "AR": "Argentina", "AW": "Aruba", "BS": "Bahamas", "BB": "Barbados", "BZ": "Belize", "BM": "Bermuda", "VI": "US Virgin Islands", "US": "United States", "UY": "Uruguay", "VE": "Venezuela" } }, "ME": { "name": "Middle East", "countries": { "IR": "Iran", "IQ": "Iraq", "IL": "Israel", "JO": "Jordan", "KW": "Kuwait", "OM": "Oman", "QA": "Qatar", "SA": "Saudi Arabia", "SY": "Syria", "TR": "Turkey" } } } languages = { "ab":{ "name":"Abkhaz", "nativeName":"аҧсуа" }, "aa":{ "name":"Afar", "nativeName":"Afaraf" }, "af":{ "name":"Afrikaans", "nativeName":"Afrikaans" }, "ak":{ "name":"Akan", "nativeName":"Akan" }, "sq":{ "name":"Albanian", "nativeName":"Shqip" }, "am":{ "name":"Amharic", "nativeName":"አማርኛ" }, "ar":{ "name":"Arabic", "nativeName":"العربية" }, "an":{ "name":"Aragonese", "nativeName":"Aragonés" }, "hy":{ "name":"Armenian", "nativeName":"Հայերեն" }, "as":{ "name":"Assamese", "nativeName":"অসমীয়া" }, "av":{ "name":"Avaric", "nativeName":"авар мацӀ, магӀарул мацӀ" }, "ae":{ "name":"Avestan", "nativeName":"avesta" }, "ay":{ "name":"Aymara", "nativeName":"aymar aru" }, "az":{ "name":"Azerbaijani", "nativeName":"azərbaycan dili" }, "bm":{ "name":"Bambara", "nativeName":"bamanankan" }, "ba":{ "name":"Bashkir", "nativeName":"башҡорт теле" }, "eu":{ "name":"Basque", "nativeName":"euskara, euskera" }, "be":{ "name":"Belarusian", "nativeName":"Беларуская" }, "bn":{ "name":"Bengali", "nativeName":"বাংলা" }, "bh":{ "name":"Bihari", "nativeName":"भोजपुरी" }, "bi":{ "name":"Bislama", "nativeName":"Bislama" }, "bs":{ "name":"Bosnian", "nativeName":"bosanski jezik" }, "br":{ "name":"Breton", "nativeName":"brezhoneg" }, "bg":{ "name":"Bulgarian", "nativeName":"български език" }, "my":{ "name":"Burmese", "nativeName":"ဗမာစာ" }, "ca":{ "name":"Catalan; Valencian", "nativeName":"Català" }, "ch":{ "name":"Chamorro", "nativeName":"Chamoru" }, "ce":{ "name":"Chechen", "nativeName":"нохчийн мотт" }, "ny":{ "name":"Chichewa; Chewa; Nyanja", "nativeName":"chiCheŵa, chinyanja" }, "zh":{ "name":"Chinese", "nativeName":"中文 (Zhōngwén), 汉语, 漢語" }, "cv":{ "name":"Chuvash", "nativeName":"чӑваш чӗлхи" }, "kw":{ "name":"Cornish", "nativeName":"Kernewek" }, "co":{ "name":"Corsican", "nativeName":"corsu, lingua corsa" }, "cr":{ "name":"Cree", "nativeName":"ᓀᐦᐃᔭᐍᐏᐣ" }, "hr":{ "name":"Croatian", "nativeName":"hrvatski" }, "cs":{ "name":"Czech", "nativeName":"česky, čeština" }, "da":{ "name":"Danish", "nativeName":"dansk" }, "dv":{ "name":"Divehi; Dhivehi; Maldivian;", "nativeName":"ދިވެހި" }, "nl":{ "name":"Dutch", "nativeName":"Nederlands, Vlaams" }, "en":{ "name":"English", "nativeName":"English" }, "eo":{ "name":"Esperanto", "nativeName":"Esperanto" }, "et":{ "name":"Estonian", "nativeName":"eesti, eesti keel" }, "ee":{ "name":"Ewe", "nativeName":"Eʋegbe" }, "fo":{ "name":"Faroese", "nativeName":"føroyskt" }, "fj":{ "name":"Fijian", "nativeName":"vosa Vakaviti" }, "fi":{ "name":"Finnish", "nativeName":"suomi, suomen kieli" }, "fr":{ "name":"French", "nativeName":"français, langue française" }, "ff":{ "name":"Fula; Fulah; Pulaar; Pular", "nativeName":"Fulfulde, Pulaar, Pular" }, "gl":{ "name":"Galician", "nativeName":"Galego" }, "ka":{ "name":"Georgian", "nativeName":"ქართული" }, "de":{ "name":"German", "nativeName":"Deutsch" }, "el":{ "name":"Greek, Modern", "nativeName":"Ελληνικά" }, "gn":{ "name":"Guaraní", "nativeName":"Avañeẽ" }, "gu":{ "name":"Gujarati", "nativeName":"ગુજરાતી" }, "ht":{ "name":"Haitian; Haitian Creole", "nativeName":"Kreyòl ayisyen" }, "ha":{ "name":"Hausa", "nativeName":"Hausa, هَوُسَ" }, "he":{ "name":"Hebrew (modern)", "nativeName":"עברית" }, "hz":{ "name":"Herero", "nativeName":"Otjiherero" }, "hi":{ "name":"Hindi", "nativeName":"हिन्दी, हिंदी" }, "ho":{ "name":"Hiri Motu", "nativeName":"Hiri Motu" }, "hu":{ "name":"Hungarian", "nativeName":"Magyar" }, "ia":{ "name":"Interlingua", "nativeName":"Interlingua" }, "id":{ "name":"Indonesian", "nativeName":"Bahasa Indonesia" }, "ie":{ "name":"Interlingue", "nativeName":"Originally called Occidental; then Interlingue after WWII" }, "ga":{ "name":"Irish", "nativeName":"Gaeilge" }, "ig":{ "name":"Igbo", "nativeName":"Asụsụ Igbo" }, "ik":{ "name":"Inupiaq", "nativeName":"Iñupiaq, Iñupiatun" }, "io":{ "name":"Ido", "nativeName":"Ido" }, "is":{ "name":"Icelandic", "nativeName":"Íslenska" }, "it":{ "name":"Italian", "nativeName":"Italiano" }, "iu":{ "name":"Inuktitut", "nativeName":"ᐃᓄᒃᑎᑐᑦ" }, "ja":{ "name":"Japanese", "nativeName":"日本語 (にほんご/にっぽんご)" }, "jv":{ "name":"Javanese", "nativeName":"basa Jawa" }, "kl":{ "name":"Kalaallisut, Greenlandic", "nativeName":"kalaallisut, kalaallit oqaasii" }, "kn":{ "name":"Kannada", "nativeName":"ಕನ್ನಡ" }, "kr":{ "name":"Kanuri", "nativeName":"Kanuri" }, "ks":{ "name":"Kashmiri", "nativeName":"कश्मीरी, كشميري‎" }, "kk":{ "name":"Kazakh", "nativeName":"Қазақ тілі" }, "km":{ "name":"Khmer", "nativeName":"ភាសាខ្មែរ" }, "ki":{ "name":"Kikuyu, Gikuyu", "nativeName":"Gĩkũyũ" }, "rw":{ "name":"Kinyarwanda", "nativeName":"Ikinyarwanda" }, "ky":{ "name":"Kirghiz, Kyrgyz", "nativeName":"кыргыз тили" }, "kv":{ "name":"Komi", "nativeName":"коми кыв" }, "kg":{ "name":"Kongo", "nativeName":"KiKongo" }, "ko":{ "name":"Korean", "nativeName":"한국어 (韓國語), 조선말 (朝鮮語)" }, "ku":{ "name":"Kurdish", "nativeName":"Kurdî, كوردی‎" }, "kj":{ "name":"Kwanyama, Kuanyama", "nativeName":"Kuanyama" }, "la":{ "name":"Latin", "nativeName":"latine, lingua latina" }, "lb":{ "name":"Luxembourgish, Letzeburgesch", "nativeName":"Lëtzebuergesch" }, "lg":{ "name":"Luganda", "nativeName":"Luganda" }, "li":{ "name":"Limburgish, Limburgan, Limburger", "nativeName":"Limburgs" }, "ln":{ "name":"Lingala", "nativeName":"Lingála" }, "lo":{ "name":"Lao", "nativeName":"ພາສາລາວ" }, "lt":{ "name":"Lithuanian", "nativeName":"lietuvių kalba" }, "lu":{ "name":"Luba-Katanga", "nativeName":"" }, "lv":{ "name":"Latvian", "nativeName":"latviešu valoda" }, "gv":{ "name":"Manx", "nativeName":"Gaelg, Gailck" }, "mk":{ "name":"Macedonian", "nativeName":"македонски јазик" }, "mg":{ "name":"Malagasy", "nativeName":"Malagasy fiteny" }, "ms":{ "name":"Malay", "nativeName":"bahasa Melayu, بهاس ملايو‎" }, "ml":{ "name":"Malayalam", "nativeName":"മലയാളം" }, "mt":{ "name":"Maltese", "nativeName":"Malti" }, "mi":{ "name":"Māori", "nativeName":"te reo Māori" }, "mr":{ "name":"Marathi (Marāṭhī)", "nativeName":"मराठी" }, "mh":{ "name":"Marshallese", "nativeName":"Kajin M̧ajeļ" }, "mn":{ "name":"Mongolian", "nativeName":"монгол" }, "na":{ "name":"Nauru", "nativeName":"Ekakairũ Naoero" }, "nv":{ "name":"Navajo, Navaho", "nativeName":"Diné bizaad, Dinékʼehǰí" }, "nb":{ "name":"Norwegian Bokmål", "nativeName":"Norsk bokmål" }, "nd":{ "name":"North Ndebele", "nativeName":"isiNdebele" }, "ne":{ "name":"Nepali", "nativeName":"नेपाली" }, "ng":{ "name":"Ndonga", "nativeName":"Owambo" }, "nn":{ "name":"Norwegian Nynorsk", "nativeName":"Norsk nynorsk" }, "no":{ "name":"Norwegian", "nativeName":"Norsk" }, "ii":{ "name":"Nuosu", "nativeName":"ꆈꌠ꒿ Nuosuhxop" }, "nr":{ "name":"South Ndebele", "nativeName":"isiNdebele" }, "oc":{ "name":"Occitan", "nativeName":"Occitan" }, "oj":{ "name":"Ojibwe, Ojibwa", "nativeName":"ᐊᓂᔑᓈᐯᒧᐎᓐ" }, "cu":{ "name":"Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic", "nativeName":"ѩзыкъ словѣньскъ" }, "om":{ "name":"Oromo", "nativeName":"Afaan Oromoo" }, "or":{ "name":"Oriya", "nativeName":"ଓଡ଼ିଆ" }, "os":{ "name":"Ossetian, Ossetic", "nativeName":"ирон æвзаг" }, "pa":{ "name":"Panjabi, Punjabi", "nativeName":"ਪੰਜਾਬੀ, پنجابی‎" }, "pi":{ "name":"Pāli", "nativeName":"पाऴि" }, "fa":{ "name":"Persian", "nativeName":"فارسی" }, "pl":{ "name":"Polish", "nativeName":"polski" }, "ps":{ "name":"Pashto, Pushto", "nativeName":"پښتو" }, "pt":{ "name":"Portuguese", "nativeName":"Português" }, "qu":{ "name":"Quechua", "nativeName":"Runa Simi, Kichwa" }, "rm":{ "name":"Romansh", "nativeName":"rumantsch grischun" }, "rn":{ "name":"Kirundi", "nativeName":"kiRundi" }, "ro":{ "name":"Romanian, Moldavian, Moldovan", "nativeName":"română" }, "ru":{ "name":"Russian", "nativeName":"русский язык" }, "sa":{ "name":"Sanskrit (Saṁskṛta)", "nativeName":"संस्कृतम्" }, "sc":{ "name":"Sardinian", "nativeName":"sardu" }, "sd":{ "name":"Sindhi", "nativeName":"सिन्धी, سنڌي، سندھی‎" }, "se":{ "name":"Northern Sami", "nativeName":"Davvisámegiella" }, "sm":{ "name":"Samoan", "nativeName":"gagana faa Samoa" }, "sg":{ "name":"Sango", "nativeName":"yângâ tî sängö" }, "sr":{ "name":"Serbian", "nativeName":"српски језик" } } function getContinent(code){ for(continent in continents){ if(continents[continent].countries[code]){ return continents[continent].name; } } } function getCountry(code){ for(continent in continents){ if(continents[continent].countries[code]){ return continents[continent].countries[code]; } } } function getLanguage(code){ return languages[code].name; } function createLangArray(){ $('link[rel="alternate"]').each(function() { var arr = $(this).attr('hrefLang').split('-'); var continent = getContinent(arr[1].toUpperCase()); var country = getCountry(arr[1].toUpperCase()); var language = getLanguage(arr[0]); if (lang[continent] == undefined) { lang[continent] = {}; } if (lang[continent][country] == undefined) { lang[continent][country] = {}; } lang[continent][country] = {country: country, language: language}; }); console.log(lang); } 
 <link rel="alternate" href="/de-ch/index.html" hreflang="de-ch" type="text/html"> <link rel="alternate" href="/en-gb/index.html" hreflang="en-gb" type="text/html"> <link rel="alternate" href="/en-hk/index.html" hreflang="en-hk" type="text/html"> <link rel="alternate" href="/fr-ch/index.html" hreflang="fr-ch" type="text/html"> <link rel="alternate" href="/it-ch/index.html" hreflang="it-ch" type="text/html"> <link rel="alternate" href="/zh-hk/index.html" hreflang="zh-hk" type="text/html"> 

I think i finally understand what you want. 我想我终于明白了你想要什么。 You can change only this part of your code: 您只能更改部分代码:

if (lang[continent][country] == undefined) {
    lang[continent][country] = {};
}

lang[continent][country] = {country: country, language: language};

To this (define countries as Array ): 为此(将countries /地区定义为Array ):

if (lang[continent].countries == undefined) {
    lang[continent].countries = [];
}

lang[continent].countries.push({country: country, language: language});

See this JSFiddle. 请参阅 JSFiddle。

how about this? 这个怎么样?

  var continents = { "AF": { "name": "Africa", "countries": { "DZ": "Algeria", "AO": "Angola", "BJ": "Benin", "BW": "Botswana", "BF": "Burkina Faso", "ZW": "Zimbabwe" } }, "AS": { "name": "Asia", "countries": { "AF": "Afghanistan", "AM": "Armenia", "HK": "Hong Kong SAR China", "IN": "India", "ID": "Indonesia", "JP": "Japan", "KZ": "Kazakhstan", "TM": "Turkmenistan", "AE": "United Arab Emirates", "UZ": "Uzbekistan", "VN": "Vietnam", "YE": "Yemen" } }, "EU": { "name": "Europe", "countries": { "AL": "Albania", "AD": "Andorra", "AT": "Austria", "BY": "Belarus", "BE": "Belgium", "BA": "Bosnia and Herzegovina", "BG": "Bulgaria", "HR": "Croatia", "CY": "Cyprus", "CZ": "Czech Republic", "DK": "Denmark", "DD": "East Germany", "EE": "Estonia", "FO": "Faroe Islands", "FI": "Finland", "FR": "France", "DE": "Germany", "GI": "Gibraltar", "GR": "Greece", "GG": "Guernsey", "HU": "Hungary", "IS": "Iceland", "IE": "Ireland", "IM": "Isle of Man", "IT": "Italy", "JE": "Jersey", "LV": "Latvia", "LI": "Liechtenstein", "LT": "Lithuania", "LU": "Luxembourg", "MK": "Macedonia", "MT": "Malta", "FX": "Metropolitan France", "MD": "Moldova", "MC": "Monaco", "ME": "Montenegro", "NL": "Netherlands", "NO": "Norway", "PL": "Poland", "PT": "Portugal", "RO": "Romania", "RU": "Russia", "SM": "San Marino", "RS": "Serbia", "CS": "Serbia and Montenegro", "SK": "Slovakia", "SI": "Slovenia", "ES": "Spain", "SJ": "Svalbard and Jan Mayen", "SE": "Sweden", "CH": "Switzerland", "UA": "Ukraine", "SU": "Union of Soviet Socialist Republics", "GB": "United Kingdom", "VA": "Vatican City", "AX": "Åland Islands" } }, "AU": { "name": "Australia", "countries": { "AS": "American Samoa", "AQ": "Antarctica", "AU": "Australia", "BV": "Bouvet Island", "UM": "US Minor Outlying Islands", "VU": "Vanuatu", "WF": "Wallis and Futuna" } }, "AM": { "name": "America", "countries": { "AI": "Anguilla", "AG": "Antigua and Barbuda", "AR": "Argentina", "AW": "Aruba", "BS": "Bahamas", "BB": "Barbados", "BZ": "Belize", "BM": "Bermuda", "VI": "US Virgin Islands", "US": "United States", "UY": "Uruguay", "VE": "Venezuela" } }, "ME": { "name": "Middle East", "countries": { "IR": "Iran", "IQ": "Iraq", "IL": "Israel", "JO": "Jordan", "KW": "Kuwait", "OM": "Oman", "QA": "Qatar", "SA": "Saudi Arabia", "SY": "Syria", "TR": "Turkey" } } } var languages = { "ab": { "name": "Abkhaz", "nativeName": "аҧсуа" }, "aa": { "name": "Afar", "nativeName": "Afaraf" }, "af": { "name": "Afrikaans", "nativeName": "Afrikaans" }, "ak": { "name": "Akan", "nativeName": "Akan" }, "sq": { "name": "Albanian", "nativeName": "Shqip" }, "am": { "name": "Amharic", "nativeName": "አማርኛ" }, "ar": { "name": "Arabic", "nativeName": "العربية" }, "an": { "name": "Aragonese", "nativeName": "Aragonés" }, "hy": { "name": "Armenian", "nativeName": "Հայերեն" }, "as": { "name": "Assamese", "nativeName": "অসমীয়া" }, "av": { "name": "Avaric", "nativeName": "авар мацӀ, магӀарул мацӀ" }, "ae": { "name": "Avestan", "nativeName": "avesta" }, "ay": { "name": "Aymara", "nativeName": "aymar aru" }, "az": { "name": "Azerbaijani", "nativeName": "azərbaycan dili" }, "bm": { "name": "Bambara", "nativeName": "bamanankan" }, "ba": { "name": "Bashkir", "nativeName": "башҡорт теле" }, "eu": { "name": "Basque", "nativeName": "euskara, euskera" }, "be": { "name": "Belarusian", "nativeName": "Беларуская" }, "bn": { "name": "Bengali", "nativeName": "বাংলা" }, "bh": { "name": "Bihari", "nativeName": "भोजपुरी" }, "bi": { "name": "Bislama", "nativeName": "Bislama" }, "bs": { "name": "Bosnian", "nativeName": "bosanski jezik" }, "br": { "name": "Breton", "nativeName": "brezhoneg" }, "bg": { "name": "Bulgarian", "nativeName": "български език" }, "my": { "name": "Burmese", "nativeName": "ဗမာစာ" }, "ca": { "name": "Catalan; Valencian", "nativeName": "Català" }, "ch": { "name": "Chamorro", "nativeName": "Chamoru" }, "ce": { "name": "Chechen", "nativeName": "нохчийн мотт" }, "ny": { "name": "Chichewa; Chewa; Nyanja", "nativeName": "chiCheŵa, chinyanja" }, "zh": { "name": "Chinese", "nativeName": "中文 (Zhōngwén), 汉语, 漢語" }, "cv": { "name": "Chuvash", "nativeName": "чӑваш чӗлхи" }, "kw": { "name": "Cornish", "nativeName": "Kernewek" }, "co": { "name": "Corsican", "nativeName": "corsu, lingua corsa" }, "cr": { "name": "Cree", "nativeName": "ᓀᐦᐃᔭᐍᐏᐣ" }, "hr": { "name": "Croatian", "nativeName": "hrvatski" }, "cs": { "name": "Czech", "nativeName": "česky, čeština" }, "da": { "name": "Danish", "nativeName": "dansk" }, "dv": { "name": "Divehi; Dhivehi; Maldivian;", "nativeName": "ދިވެހި" }, "nl": { "name": "Dutch", "nativeName": "Nederlands, Vlaams" }, "en": { "name": "English", "nativeName": "English" }, "eo": { "name": "Esperanto", "nativeName": "Esperanto" }, "et": { "name": "Estonian", "nativeName": "eesti, eesti keel" }, "ee": { "name": "Ewe", "nativeName": "Eʋegbe" }, "fo": { "name": "Faroese", "nativeName": "føroyskt" }, "fj": { "name": "Fijian", "nativeName": "vosa Vakaviti" }, "fi": { "name": "Finnish", "nativeName": "suomi, suomen kieli" }, "fr": { "name": "French", "nativeName": "français, langue française" }, "ff": { "name": "Fula; Fulah; Pulaar; Pular", "nativeName": "Fulfulde, Pulaar, Pular" }, "gl": { "name": "Galician", "nativeName": "Galego" }, "ka": { "name": "Georgian", "nativeName": "ქართული" }, "de": { "name": "German", "nativeName": "Deutsch" }, "el": { "name": "Greek, Modern", "nativeName": "Ελληνικά" }, "gn": { "name": "Guaraní", "nativeName": "Avañeẽ" }, "gu": { "name": "Gujarati", "nativeName": "ગુજરાતી" }, "ht": { "name": "Haitian; Haitian Creole", "nativeName": "Kreyòl ayisyen" }, "ha": { "name": "Hausa", "nativeName": "Hausa, هَوُسَ" }, "he": { "name": "Hebrew (modern)", "nativeName": "עברית" }, "hz": { "name": "Herero", "nativeName": "Otjiherero" }, "hi": { "name": "Hindi", "nativeName": "हिन्दी, हिंदी" }, "ho": { "name": "Hiri Motu", "nativeName": "Hiri Motu" }, "hu": { "name": "Hungarian", "nativeName": "Magyar" }, "ia": { "name": "Interlingua", "nativeName": "Interlingua" }, "id": { "name": "Indonesian", "nativeName": "Bahasa Indonesia" }, "ie": { "name": "Interlingue", "nativeName": "Originally called Occidental; then Interlingue after WWII" }, "ga": { "name": "Irish", "nativeName": "Gaeilge" }, "ig": { "name": "Igbo", "nativeName": "Asụsụ Igbo" }, "ik": { "name": "Inupiaq", "nativeName": "Iñupiaq, Iñupiatun" }, "io": { "name": "Ido", "nativeName": "Ido" }, "is": { "name": "Icelandic", "nativeName": "Íslenska" }, "it": { "name": "Italian", "nativeName": "Italiano" }, "iu": { "name": "Inuktitut", "nativeName": "ᐃᓄᒃᑎᑐᑦ" }, "ja": { "name": "Japanese", "nativeName": "日本語 (にほんご/にっぽんご)" }, "jv": { "name": "Javanese", "nativeName": "basa Jawa" }, "kl": { "name": "Kalaallisut, Greenlandic", "nativeName": "kalaallisut, kalaallit oqaasii" }, "kn": { "name": "Kannada", "nativeName": "ಕನ್ನಡ" }, "kr": { "name": "Kanuri", "nativeName": "Kanuri" }, "ks": { "name": "Kashmiri", "nativeName": "कश्मीरी, كشميري‎" }, "kk": { "name": "Kazakh", "nativeName": "Қазақ тілі" }, "km": { "name": "Khmer", "nativeName": "ភាសាខ្មែរ" }, "ki": { "name": "Kikuyu, Gikuyu", "nativeName": "Gĩkũyũ" }, "rw": { "name": "Kinyarwanda", "nativeName": "Ikinyarwanda" }, "ky": { "name": "Kirghiz, Kyrgyz", "nativeName": "кыргыз тили" }, "kv": { "name": "Komi", "nativeName": "коми кыв" }, "kg": { "name": "Kongo", "nativeName": "KiKongo" }, "ko": { "name": "Korean", "nativeName": "한국어 (韓國語), 조선말 (朝鮮語)" }, "ku": { "name": "Kurdish", "nativeName": "Kurdî, كوردی‎" }, "kj": { "name": "Kwanyama, Kuanyama", "nativeName": "Kuanyama" }, "la": { "name": "Latin", "nativeName": "latine, lingua latina" }, "lb": { "name": "Luxembourgish, Letzeburgesch", "nativeName": "Lëtzebuergesch" }, "lg": { "name": "Luganda", "nativeName": "Luganda" }, "li": { "name": "Limburgish, Limburgan, Limburger", "nativeName": "Limburgs" }, "ln": { "name": "Lingala", "nativeName": "Lingála" }, "lo": { "name": "Lao", "nativeName": "ພາສາລາວ" }, "lt": { "name": "Lithuanian", "nativeName": "lietuvių kalba" }, "lu": { "name": "Luba-Katanga", "nativeName": "" }, "lv": { "name": "Latvian", "nativeName": "latviešu valoda" }, "gv": { "name": "Manx", "nativeName": "Gaelg, Gailck" }, "mk": { "name": "Macedonian", "nativeName": "македонски јазик" }, "mg": { "name": "Malagasy", "nativeName": "Malagasy fiteny" }, "ms": { "name": "Malay", "nativeName": "bahasa Melayu, بهاس ملايو‎" }, "ml": { "name": "Malayalam", "nativeName": "മലയാളം" }, "mt": { "name": "Maltese", "nativeName": "Malti" }, "mi": { "name": "Māori", "nativeName": "te reo Māori" }, "mr": { "name": "Marathi (Marāṭhī)", "nativeName": "मराठी" }, "mh": { "name": "Marshallese", "nativeName": "Kajin M̧ajeļ" }, "mn": { "name": "Mongolian", "nativeName": "монгол" }, "na": { "name": "Nauru", "nativeName": "Ekakairũ Naoero" }, "nv": { "name": "Navajo, Navaho", "nativeName": "Diné bizaad, Dinékʼehǰí" }, "nb": { "name": "Norwegian Bokmål", "nativeName": "Norsk bokmål" }, "nd": { "name": "North Ndebele", "nativeName": "isiNdebele" }, "ne": { "name": "Nepali", "nativeName": "नेपाली" }, "ng": { "name": "Ndonga", "nativeName": "Owambo" }, "nn": { "name": "Norwegian Nynorsk", "nativeName": "Norsk nynorsk" }, "no": { "name": "Norwegian", "nativeName": "Norsk" }, "ii": { "name": "Nuosu", "nativeName": "ꆈꌠ꒿ Nuosuhxop" }, "nr": { "name": "South Ndebele", "nativeName": "isiNdebele" }, "oc": { "name": "Occitan", "nativeName": "Occitan" }, "oj": { "name": "Ojibwe, Ojibwa", "nativeName": "ᐊᓂᔑᓈᐯᒧᐎᓐ" }, "cu": { "name": "Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic", "nativeName": "ѩзыкъ словѣньскъ" }, "om": { "name": "Oromo", "nativeName": "Afaan Oromoo" }, "or": { "name": "Oriya", "nativeName": "ଓଡ଼ିଆ" }, "os": { "name": "Ossetian, Ossetic", "nativeName": "ирон æвзаг" }, "pa": { "name": "Panjabi, Punjabi", "nativeName": "ਪੰਜਾਬੀ, پنجابی‎" }, "pi": { "name": "Pāli", "nativeName": "पाऴि" }, "fa": { "name": "Persian", "nativeName": "فارسی" }, "pl": { "name": "Polish", "nativeName": "polski" }, "ps": { "name": "Pashto, Pushto", "nativeName": "پښتو" }, "pt": { "name": "Portuguese", "nativeName": "Português" }, "qu": { "name": "Quechua", "nativeName": "Runa Simi, Kichwa" }, "rm": { "name": "Romansh", "nativeName": "rumantsch grischun" }, "rn": { "name": "Kirundi", "nativeName": "kiRundi" }, "ro": { "name": "Romanian, Moldavian, Moldovan", "nativeName": "română" }, "ru": { "name": "Russian", "nativeName": "русский язык" }, "sa": { "name": "Sanskrit (Saṁskṛta)", "nativeName": "संस्कृतम्" }, "sc": { "name": "Sardinian", "nativeName": "sardu" }, "sd": { "name": "Sindhi", "nativeName": "सिन्धी, سنڌي، سندھی‎" }, "se": { "name": "Northern Sami", "nativeName": "Davvisámegiella" }, "sm": { "name": "Samoan", "nativeName": "gagana faa Samoa" }, "sg": { "name": "Sango", "nativeName": "yângâ tî sängö" }, "sr": { "name": "Serbian", "nativeName": "српски језик" } } function getContinent(code) { for (continent in continents) { if (continents[continent].countries[code]) { return continents[continent]; } } } function createLangArray() { var lang = {}; $('link[rel="alternate"]').each(function () { var arr = $(this).attr('hrefLang').split('-'), CD1 = arr[1].toUpperCase(), CD2 = arr[0]; var continent = getContinent(CD1); var language = languages[CD2].name; // console.log(arr, CD1, continent); if (typeof lang[continent.name] == "undefined") { lang[continent.name] = {country:[]}; } var country = []; for(var k in continent.countries){ if(k == CD1){ country.push({name:continent.countries[k], lang:language}); } } lang[continent.name].country = lang[continent.name].country.concat(country); }); console.log(lang); } createLangArray(); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <link rel="alternate" href="/de-ch/index.html" hreflang="de-ch" type="text/html"> <link rel="alternate" href="/en-gb/index.html" hreflang="en-gb" type="text/html"> <link rel="alternate" href="/en-hk/index.html" hreflang="en-hk" type="text/html"> <link rel="alternate" href="/fr-ch/index.html" hreflang="fr-ch" type="text/html"> <link rel="alternate" href="/it-ch/index.html" hreflang="it-ch" type="text/html"> <link rel="alternate" href="/zh-hk/index.html" hreflang="zh-hk" type="text/html"> 

Result 结果

{
    "Europe":{
        "country":[
            {
                "name":"Switzerland",
                "lang":"German"
            },
            {
                "name":"United Kingdom",
                "lang":"English"
            },
            {
                "name":"Switzerland",
                "lang":"French"
            },
            {
                "name":"Switzerland",
                "lang":"Italian"
            }]
    },
    "Asia":{
        "country":[
            {
                "name":"Hong Kong SAR China",
                "lang":"English"
            },
            {
                "name":"Hong Kong SAR China",
                "lang":"Chinese"
            }]
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM