Après avoir créé un tableau multi-dim comme celui-ci, comment le trier?
En supposant que des "marqueurs" sont déjà définis:
var location = [];
for (var i = 0; i < markers.length; i++) {
location[i] = {};
location[i]["distance"] = "5";
location[i]["name"] = "foo";
location[i]["detail"] = "something";
}
Pour l'exemple ci-dessus, je dois le trier par "distance". J'ai vu d'autres questions sur le tri des tableaux et des tableaux multi-dim, mais aucun ne semble fonctionner pour cela.
location.sort(function(a,b) {
// assuming distance is always a valid integer
return parseInt(a.distance,10) - parseInt(b.distance,10);
});
la méthode array.sort
de javascript a un paramètre facultatif, qui est une référence de fonction pour une comparaison personnalisée. les valeurs de retour sont >0
signifiant b
en premier, 0
signifiant a
et b
sont égales, et <0
signifiant a
d'abord.
Avez-vous essayé cela?
location.sort(function(a,b) {
return a.distance - b.distance;
});
Les deux fonctions de tri publiées jusqu'à présent devraient fonctionner, mais votre problème principal sera d'utiliser location
comme variable car elle est déjà définie par le système.