Trier le tableau sur la valeur de la clé
J'ai une fonction qui trie par nom et un tableau de valeur /de paires de clés.
Je me demande comment puis-je passer la clé de tri est effectué pour que je puisse appeler la même fonction à chaque fois comme:
var arr = [{name:'bob', artist:'rudy'},
{name:'johhny', artist:'drusko'},
{name:'tiff', artist:'needell'},
{name:'top', artist:'gear'}];
sort(arr, 'name'); //trying to sort by name
sort(arr, 'artist'); //trying to sort by artist
function sort(arr) {
arr.sort(function(a, b) {
var nameA=a.name.toLowerCase(), nameB=b.name.toLowerCase();
if (nameA < nameB) //sort string ascending
return -1;
if (nameA > nameB)
return 1;
return 0; //default return value (no sorting)
});
}
source d'informationauteur Toniq | 2013-05-20
Vous devez vous connecter pour publier un commentaire.
Ici sont deux fonctions de tri qui peuvent être utiles:
Pour votre tableau, vous pouvez trier sur 'name':
Vous pouvez également combiner les fonctions de tri:
Et l'utilisation
Ici est une sorte de tout-en-un solution:
Rendre votre vie facile et l'utilisation d'une fermeture
https://stackoverflow.com/a/31846142/1001405
Vous pouvez voir l'exemple ici
En regardant toutes les réponses, je suis venu avec ma propre solution qui fonctionne de la croix-navigateur. La solution retenue ne fonctionne pas dans IE ou Safari. Aussi, les autres solutions ne permettent pas de tri par ordre décroissant d'.