Как отсортировать этот объект JSON по языкам справа от каждой записи? - PullRequest
1 голос
/ 04 июля 2010

Я создаю приложение для Android с использованием PhoneGap и jqTouch, и у меня есть объект JSON, содержащий слово вместе с языком, на котором это слово. Как я могу отсортировать это по алфавиту, по столбцу справа (язык), используя Javascript?Конечным результатом должны быть Африкаанс как первая запись и Зулу как последняя.

var languages = {
    "Hello" :   "English",
    "Bonjour"   :   "French",
    "Hola"  :   "Spanish",
    "السّلام عليكم" :   "Arabic",
    "Haai"  :   "Afrikaans",
    "Nei ho"    :   "Cantonese".
    "Goddag"    :   "Danish",
    "Goede dag" :   "Dutch",
    "Saluton"   :   "Esperanto",
    "Hei"   :   "Finnish",
    "Guten tag" :   "German",
    "Gia'sou"   :   "Greek",
    "Aloha" :   "Hawaiian",
    "Hebrew"    :   "Shalom",
    "Namaste"   :   "Hindi",
    "Halo"  :   "Indonesian",
    "Aksunai"   :   "Inuit",
    "Dia dhuit" :   "Irish",
    "Salve" :   "Spanish",
    "Kon-nichiwa"   :   "Japanese",
    "An-nyong Ha-se-yo" :   "Korean",
    "Mandarin"  :   "Ni hao",
    "Hallo" :   "Norweigan",
    "Dzien' dobry"  :   "Polish",
    "Jambo" :   "Swahili",
    "Hej"   :   "Swedish",
    "Sa-wat-dee"    :   "Thai",
    "Merhaba"   :   "Turkish",
    "Vitayu"    :   "Ukrainian",
    "Hylo"  :   "Welsh",
    "Sholem aleychem"   :   "Yiddish",
    "Sawubona"  :   "Zulu"
}

Спасибо за вашу помощь, ребята:)

1 Ответ

3 голосов
/ 04 июля 2010

JavaScript не гарантирует какого-либо упорядочения свойств объекта.Таким образом, вам нужно создать массив, который будет численно индексировать каждую запись.

Например:

var list = [];
for (x in languages) {
  list.push({lang: languages[x], word: x});
}

Затем для сортировки по языку вы можете:

list = list.sort(function (a, b) { return a.lang < b.lang; });
...