2010-07-04 13 views
1

Je crée une application Android en utilisant PhoneGap et jqTouch, et j'ai un objet JSON contenant un mot avec une langue dans laquelle ce mot est. Comment puis-je trier cela par ordre alphabétique, par la colonne sur la droite (la langue), en utilisant Javascript? Le résultat final devrait être Afrikaans comme première entrée et Zulu comme dernière.Comment trier cet objet JSON par les langues à droite de chaque entrée?

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

Merci pour votre aide les gars :)

+0

Comment faites-vous quand un mot est la même dans les différentes langues? –

Répondre

3

JavaScript ne garantit pas la commande des propriétés de l'objet. Vous aurez donc besoin de créer un tableau qui indexe numériquement chaque entrée.

.: par exemple

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

Ensuite, pour trier par langue, vous pouvez:

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