I'm trying to build a language menu based on <link rel="alternate">
tags in the head of a website.
我正在尝试在网站的头部基于 标签构建语言菜单。
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
- Country 1
- name
- lang
- Country 2
- name
- lang
- ...
国家1名字朗
国家2名字朗
- Country 1
- Continent 2
- Country 1
- name
- lang
- Country 2
- name
- lang
国家1名字朗
国家2名字朗
- Country 1
- ...
大陆1国家1名称lang国家2名称lang ...
大陆2国家1名称lang国家2名称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": "* 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": "U.S. 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": "U.S. 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":"*n",
"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">
2 个解决方案
#1
2
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
):
为此(将国家定义为数组):
if (lang[continent].countries == undefined) {
lang[continent].countries = [];
}
lang[continent].countries.push({country: country, language: language});
See this JSFiddle.
看到这个JSFiddle。
#2
0
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": "* 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": "U.S. 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": "U.S. 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": "*n",
"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":"* SAR China",
"lang":"English"
},
{
"name":"* SAR China",
"lang":"Chinese"
}]
}
}
#1
2
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
):
为此(将国家定义为数组):
if (lang[continent].countries == undefined) {
lang[continent].countries = [];
}
lang[continent].countries.push({country: country, language: language});
See this JSFiddle.
看到这个JSFiddle。
#2
0
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": "* 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": "U.S. 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": "U.S. 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": "*n",
"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":"* SAR China",
"lang":"English"
},
{
"name":"* SAR China",
"lang":"Chinese"
}]
}
}