Contenu du cours
Structures de Données JavaScript
Structures de Données JavaScript
Méthode sort()
Ce chapitre explore les subtilités de la méthode sort()
, y compris sa syntaxe, ses comportements par défaut et ses techniques de tri personnalisées.
sort()
La méthode sort()
modifie le tableau original, lui conférant un nouvel agencement.
Caractéristiques clés à retenir :
- Le tableau original se transforme, trouvant ses éléments dans un nouvel agencement ;
- La méthode fournit un tableau modifié comme valeur de retour, permettant une exploration plus approfondie ;
- Par défaut, la méthode sort() arrange les éléments par ordre croissant.
Comportement de Tri par Défaut
Le tri par défaut se déroule sans accroc pour les tableaux de chaînes de caractères, mais les tableaux numériques peuvent présenter des défis. Naviguons à travers des exemples pour éclairer ce comportement :
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
Dans cet exemple, le tableau de nombres est trié par ordre croissant, apparemment simple. Cependant, des nuances émergent dans l'illustration suivante :
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
La méthode sort()
traite les éléments comme des chaînes par défaut, ce qui peut entraîner des résultats inattendus. Par exemple, 19
est trié avant 2
, et 25
avant 3
. La solution réside dans la personnalisation du processus de tri.
Ordres de Tri Personnalisés
Pour adapter le tri à des besoins spécifiques, une fonction de rappel est utilisée. Cette fonction, souvent appelée fonction de comparaison, dicte la logique de tri. Explorons le tri personnalisé pour les nombres et les chaînes. Syntaxe de base :
a
est considéré comme le premier élément ;b
est considéré comme le deuxième élément.
Trier les Nombres
Dans cet exemple, la fonction de comparaison détermine l'ordre croissant et décroissant basé sur la relation entre les éléments a
et b
.
const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
Trier les chaînes
La méthode localeCompare()
facilite le tri alphabétique, permettant une personnalisation pour les ordres croissant et décroissant.
const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
1. Quelle est une caractéristique clé de la méthode sort()
?
2. Dans le comportement de tri par défaut de la méthode sort()
, comment traite-t-elle les éléments ?
3. Dans l'exemple ci-dessous, quel sera le résultat ?
Merci pour vos commentaires !