JavaScript Array Sort - Comment utiliser les méthodes de tri JS (avec des exemples de code)

En JavaScript, nous pouvons trier facilement les éléments d'un tableau avec une méthode intégrée appelée fonction sort ().

Cependant, les types de données (chaîne, nombre, etc.) peuvent différer d'un tableau à l'autre. Cela signifie que l'utilisation de la méthode sort () seule n'est pas toujours une solution appropriée.

Dans cet article, vous apprendrez à trier un tableau en JavaScript en utilisant la méthode sort () pour les chaînes et les nombres.

Tableau de chaînes

Commençons par les chaînes:

const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];

Lorsque nous utilisons la méthode sort (), les éléments seront triés par ordre croissant (A à Z) par défaut:

teams.sort(); // ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']

Si vous préférez trier le tableau par ordre décroissant, vous devez utiliser la méthode reverse () à la place:

teams.reverse(); // ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']

Tableau de nombres

Le tri des nombres n'est malheureusement pas aussi simple. Si nous appliquons la méthode de tri directement à un tableau de nombres, nous verrons un résultat inattendu:

const numbers = [3, 23, 12]; numbers.sort(); // --> 12, 23, 3

Pourquoi la méthode sort () ne fonctionne pas pour les nombres

En fait, cela fonctionne, mais ce problème se produit parce que JavaScript trie les nombres par ordre alphabétique. Laissez-moi vous expliquer cela en détail.

Pensons à A = 1, B = 2 et C = 3.

const myArray = ['C', 'BC', 'AB']; myArray.sort(); // [AB, BC, C]

Par exemple, si nous avons trois chaînes comme C (3), BC (23) et AB (12), JavaScript les triera comme AB, BC et C dans un ordre croissant, ce qui est alphabétiquement correct.

Cependant, JavaScript triera les nombres (à nouveau par ordre alphabétique) comme 12, 23 et 3, ce qui est incorrect.

Solution: la fonction de comparaison

Heureusement, nous pouvons supporter la méthode sort () avec une fonction de comparaison de base qui fera l'affaire:

function(a, b) {return a - b}

La méthode de tri, heureusement, peut trier les valeurs négatives, nulles et positives dans le bon ordre. Lorsque la méthode sort () compare deux valeurs, elle envoie les valeurs à notre fonction de comparaison et trie les valeurs en fonction de la valeur renvoyée.

  • Si le résultat est négatif, a est trié avant b.
  • Si le résultat est positif, b est trié avant a.
  • Si le résultat est 0, rien ne change.

Tout ce dont nous avons besoin est d'utiliser la fonction de comparaison dans la méthode sort ():

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return a - b}); // --> 3, 12, 23

Si nous voulons trier les nombres par ordre décroissant, nous devons cette fois soustraire le deuxième paramètre (b) du premier (a):

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return b - a}); // --> 23, 12, 3

Emballer

Ainsi, comme nous pouvons le voir, le tri des éléments d'un tableau peut se faire facilement en JavaScript avec la méthode sort (), si nous savons comment l'utiliser correctement. J'espère que mon article vous aidera à comprendre comment utiliser la méthode sort () en JavaScript de la bonne manière.

Si vous souhaitez en savoir plus sur le développement Web, n'hésitez pas à visiter ma chaîne Youtube.

Merci pour la lecture!