[RESOLU]Comment trier un array à 2 dimensions avec plusieurs critéres

Comment trier un array à 2 dimensions avec plusieurs critéres [RESOLU] - Javascript/Node.js - Programmation

Marsh Posté le 30-03-2020 à 00:09:15    

Salut tout le forum  :hello: , j'ai besoin de votre aide.
Je voudrais trier un array à 2 dimensions suivant 2 critères.
 
Voilà mon array :
 

Code :
  1. var grille =
  2. [
  3.      [a, 20, 240],
  4.      [b, 150, 320],
  5.      [c, 20, 320]
  6. ];


 
je voudrais trier en premier, par ordre décroissant de l'emplacement 2 de l'array
puis par ordre croissant de l'emplacement 1 de l'array
 
Le résultat devrait être :
 

Code :
  1. var grille =
  2. [
  3.      [c, 20, 320],
  4.      [b, 150, 320],
  5.      [a, 20, 240]
  6. ];


 
Est-ce que je dois faire un tableau associatif ?
 
Je pense qu'il faut faire une fonction comparaison avec un callback, mais je n'ai sais pas du tout comment m'y prendre.
 
Merci pour votre aide.


Message édité par kewan le 30-03-2020 à 17:13:47
Reply

Marsh Posté le 30-03-2020 à 00:09:15   

Reply

Marsh Posté le 30-03-2020 à 00:20:33    

Salut  
 
 
Utilise la fonction sort avec une fonction et pour chaque élément tu compares l’emplacement 2.
Si l’emplacement 2 est égale alors tu compares l’emplacement 1.
 
Ca me paraît pas mal comme ça sans toutefois avoir testé.
 
Voilà :)

Reply

Marsh Posté le 30-03-2020 à 01:13:05    

Code :
  1. grille.sort(function(a, b) {
  2.   if (a[2] == b[2]) {
  3.     // ici le tri sur le premier element
  4.   }
  5.   return a[2] - b[2];
  6. });


 
Apres ca n'est globalement qu'une question de si c'est a-b ou b-a suivant si tu veux croissant ou décroissant.

Reply

Marsh Posté le 30-03-2020 à 17:07:55    

Merci à vous deux.
 
 

Code :
  1. grille.sort(function(a, b){
  2. if(a[2] == b[2]){
  3.  return a[1] - b[1];
  4. }
  5. return b[2] - a[2];
  6. });

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed