2 Stimmen

Wie kann ich dieses JSON-Objekt nach den Sprachen auf der rechten Seite jedes Eintrags sortieren?

Ich erstelle eine Android-App mit PhoneGap und jqTouch, und ich habe ein JSON-Objekt, das ein Wort zusammen mit einer Sprache enthält, in der dieses Wort ist. Wie kann ich dies alphabetisch sortieren, durch die Spalte auf der rechten Seite (die Sprache), mit Javascript? Das Endergebnis sollte Afrikaans als erster Eintrag und Zulu als letzter sein.

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"
}

Danke für eure Hilfe, Leute :)

3voto

Matt Punkte 42232

JavaScript garantiert keine Reihenfolge der Objekteigenschaften. Sie müssen also ein Array erstellen, das jeden Eintrag numerisch indiziert.

Z.B.:

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

Dann können Sie nach Sprachen sortieren:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X