Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1666 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2350106
kewan
Posté le 30-03-2020 à 00:09:15  profilanswer
 

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
mood
Publicité
Posté le 30-03-2020 à 00:09:15  profilanswer
 

n°2350108
dede_sav
Posté le 30-03-2020 à 00:20:33  profilanswer
 

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à :)

n°2350111
Devil'sTig​er
Posté le 30-03-2020 à 01:13:05  profilanswer
 

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.

n°2350220
kewan
Posté le 30-03-2020 à 17:07:55  profilanswer
 

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. });


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

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

 

Sujets relatifs
Trier les éléments d'une liste afin de maximiser l'espacement de deux occurrencemousover java sur plusieurs éléments en même temps
Erreur : "TypeError: iteration over a 0-d array"besoin d'aide sur blogger et menu deroulant a plusieurs niveaux
Conversion plusieurs lignes dans une cellule en plusieurs cellulesFonction mail() de PHP avec plusieurs serveurs SMTP
array_filter pour les champs vides, mais pas "0"Requete pour traitement de plusieurs Projets
Regrouper plusieurs lignes d'une seule table avec un ID communDiviser un gros document Word en plusieurs Word unique (1200 pages)
Plus de sujets relatifs à : [RESOLU]Comment trier un array à 2 dimensions avec plusieurs critéres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR