Comment trier un tableau multidimensionnel dans JavaScript?
J'ai une matrice pleine de tableaux contenant deux dates et une chaîne. J'ai besoin de la matrice principale triée par l'une des tableaux de date, est-ce possible? P>
Structure de données: P>
events = [
{ date 1, date 2, string },
{ date 2, date 2, string },
]
3 Réponses :
La structure de la matrice semble un peu vague de votre description. Vous pouvez utiliser une fonction de tri personnalisée pour comparer des éléments et faire le tri.
supposer que la structure est la suivante: p> si vous aviez des objets à la place de tableaux imbriqués, vous ne seriez pas t besoin d'utiliser des index numériques. Ici, a [0] code> et B [0] code> permet de comparer le premier élément en deux tableaux imbriqués (en supposant que la date à laquelle vous souhaitez trier). En outre, en supposant que A [0] et B [0] sont déjà des objets de date - vous devrez peut-être créer les objets de date si elles ne sont pas déjà. P> function sortByDate(a, b) {
return a[0].getTime() - b[0].getTime();
}
data.sort(sortByDate);
Vous voulez probablement dire renvoyer un [0] .gettime () - b [0] .bettime () code> car le comparateur doit revenir (Neg, zéro, POS) en fonction de si (A B), non?
Aucun point dans l'utilisation de Gettime (). A - B aboutira à A.Valueof () et à B.Valueof () utilisée dans les coulisses, qui renvoie le temps UNIX
Cet exemple est destiné aux tableaux de tri par chiffres (et dates) ou des chaînes.
a.deepsort(0); a.deepsort(2);
Fonctionne bien en chrome. 'this.sort' jette une erreur dans Firefox.
duplicata de Triez la matrice extérieure basée sur des valeurs dans Array intérieure, JavaScript
Ici vous trouverez plusieurs réponses, comme mon propre ce genre sur Index 2 P> P>
+1 Je sais que c'est un vieux post mais c'est une réponse géniale et cela m'a aidé à craquer un problème avec mon plugin de tri de table personnalisé que je fais :)
Comment se fait-il que Javascript a fait le faire être compliqué en rendant le retour de l'utilisateur 1, 0 ou -1. Au lieu de cela, pourquoi ne pas le faire comme Python où son juste arr.sort ((A, B) => A [0]