Partage
  • Partager sur Facebook
  • Partager sur Twitter

Trier array à 2 dimensions avec plusieurs critères

Sujet résolu
    30 mars 2020 à 0:11:41

    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 :
    var grille =
    [
         [a, 20, 240],
         [b, 150, 320],
         [c, 20, 320]
    ];
    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 :
    var grille =
    [
         [c, 20, 320],
         [b, 150, 320],
         [a, 20, 240]
    ];
    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.

    -
    Edité par _seb_ 30 mars 2020 à 0:14:33

    • Partager sur Facebook
    • Partager sur Twitter
      30 mars 2020 à 15:42:45

      Bonjour,

      j'ai rien compris à comment tu voudra trier l'exemple donné, mais si c'est par ex le 2e élément tu peux utiliser la fonction sort() ainsi d'après la doc:

      grille.sort(function(a, b){return a[1] - b[1]});

      https://www.w3schools.com/js/js_array_sort.asp 

      • Partager sur Facebook
      • Partager sur Twitter
        30 mars 2020 à 17:08:35

        Merci pour l'info. J'ai pu trouver ma solution
        grille.sort(function(a, b){
        	if(a[2] == b[2]){
        		return a[1] - b[1];
        	}
        	return b[2] - a[2];
        });
        • Partager sur Facebook
        • Partager sur Twitter

        Trier array à 2 dimensions avec plusieurs critères

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown