Tri de tableau multi-dimension en javascript

Bonjour à tous,

Hier j’ai eu le problème suivant en javascript. Comment trier efficacement un tableau multi-dimension en javascript. Et bien aujourd’hui j’ai trouvé la solution ! La fonction sort() en javascript permet de passer une function personnalisé en paramètre ce qui nous permet de valider de façon personnalisée le tableau. Voici un exemple simple où l’on tri par le nickname de la personne.

var objectArray = [
  { userId: 1, nickname: 'Marie' },
  { userId: 1, nickname: 'Sylvain' },
  { userId: 1, nickname: 'Michel' },
  { userId: 1, nickname: 'Victo', },
  { userId: 1, nickname: 'Michael' },
  { userId: 1, nickname: 'Abdel' },
  { userId: 1, nickname: 'John' },
  { userId: 1, nickname: 'Sylvio' }
];
 
function sortByNickname( a, b )
{
    if( a.nickname === b.nickname ) {
        return 0
    }
    return ( a.nickname < b.nickname ) ? -1 : 1;
}

Cette fonction personnalisée recoit deux elements du tableau en paramètre et nous les comparons. S’il sont égaux nous retournons la valeur 0 ce qui veux dire que nous ne déplaçons aucun des paramètres dans le tableau. Si a.nickname est plus petit que b.nickname nous retournons -1 ce qui signifie que a.nickname doit être placé plus haut dans le tableau que b.nickname. Sinon on retourne 1 ce qui signifie que b.nickname doit être placé plus haut que a.nickname dans le tableau.

Et voilà c’est tout !

S’agit juste de le savoir !