Trier un tableau d'objets de manière lexicographique basé sur une étude de la valeur
À l'aide de Javascript, je voudrais savoir comment faire pour trier les lexicographiquement un tableau d'objets basé sur une chaîne de valeur dans chaque objet.
Considérer:
[
{
"name" : "bob",
"count" : true
"birthday" : 1972
},
{
"name" : "jill",
"count" : false
"birthday" : 1922
},
{
"name" : "Gerald",
"count" : true
"birthday" : 1920
}
]
Comment puis-je trier le tableau par ordre alphabétique des noms?
Le nom des valeurs sont des noms d'utilisateur, de sorte que je tiens à maintenir la lettre boîtier.
OriginalL'auteur Sachin | 2011-12-16
Vous devez vous connecter pour publier un commentaire.
Être conscient que cela ne va pas prendre de capitalisation en compte (donc il va ordonner à tous les noms commençant par des majuscules avant de tous ceux qui commencent avec les petits, c'est à dire
"Z" < "a"
), de sorte que vous trouverez peut-être pertinent d'ajouter untoUpperCase()
.Vous pouvez le rendre plus générique:
Et encore plus générique si vous passez le comparateur à l'usine...
un plaisir.
Utilisation
toLocaleUpperCase
/toLocaleLowerCase
au lieu detoUpperCase
/toLowerCase
.Cette réponse n'est plus vrai (au moins sur actuelle de chrome dev console).
["a", "A", "b", "B"].sort((a,b)=>{return a.localeCompare(b)})
devrait être["A", "B", "a", "b"]
mais renvoie["a", "A", "b", "B"]
OriginalL'auteur davin
Cela fera:
Pas de problème; j'ai mis à jour mon code. Content que ça triés via @davin réponse.
OriginalL'auteur jabclab
À l'aide de la comparaison
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String#Comparing_strings
OriginalL'auteur Cesar Canassa