La méthode Sort
Fait partie de la section Logique & Flux du Journey JavaScript de Coddy — leçon 57 sur 65.
La méthode sort() vous permet de trier les éléments d'un tableau sur place et renvoie le tableau trié. Par défaut, elle trie les éléments en tant que chaînes de caractères par ordre alphabétique et croissant.
Voici la syntaxe de base :
array.sort([compareFunction])Exemple sans utiliser la fonction de comparaison :
const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits);
// ['apple', 'banana', 'mango', 'orange']AVERTISSEMENT : Les nombres ne sont pas triés comme prévu sans fonction de comparaison :
const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers);
// [1, 100000, 21, 30, 4] (tri numérique incorrect)Pour trier des nombres correctement ou implémenter un tri personnalisé, vous devez utiliser une fonction de comparaison.
La fonction de comparaison doit retourner :
- Une valeur négative si a doit être placé avant b
- Une valeur positive si b doit être placé avant a
- Zéro s'ils sont égaux
Voici comment trier des nombres en utilisant une fonction de comparaison :
// Ordre croissant
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]// Ordre décroissant
numbers.sort((a, b) => b - a);
console.log(numbers); // [100000, 30, 21, 4, 1]Un autre exemple de la manière de trier des objets :
const people = [
{ name: 'John', age: 30 },
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 35 }
];
// Trier par âge (croissant)
people.sort((a, b) => a.age - b.age);// Trier par nom (utiliser alphabétiquement localeCompare())
people.sort((a, b) => a.name.localeCompare(b.name));Défi
FacileCréez une fonction nommée sortByLength qui prend un tableau de chaînes de caractères et renvoie un nouveau tableau avec les mêmes chaînes triées par leur longueur dans l'ordre croissant. Si deux chaînes ont la même longueur, elles doivent être triées par ordre alphabétique.
Aide-mémoire
La méthode sort() trie les éléments d'un tableau sur place et renvoie le tableau trié. Par défaut, elle trie les éléments comme des chaînes de caractères par ordre alphabétique.
Syntaxe de base :
array.sort([compareFunction])Trier des chaînes de caractères :
const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits); // ['apple', 'banana', 'mango', 'orange']Attention : Les nombres ne sont pas triés correctement sans fonction de comparaison :
const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers); // [1, 100000, 21, 30, 4] (incorrect)La fonction de comparaison renvoie :
- Une valeur négative si a doit venir avant b
- Une valeur positive si b doit venir avant a
- Zéro s'ils sont égaux
Trier des nombres correctement :
// Ordre croissant
numbers.sort((a, b) => a - b);
// Ordre décroissant
numbers.sort((a, b) => b - a);Trier des objets :
const people = [
{ name: 'John', age: 30 },
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 35 }
];
// Trier par âge
people.sort((a, b) => a.age - b.age);
// Trier par nom alphabétiquement
people.sort((a, b) => a.name.localeCompare(b.name));Essayez vous-même
function sortByLength(arr) {
return arr.sort((a, b) => {
// Écrire le code ici
})
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Les chaînes de caractères en profondeur
Fondamentaux des chaînesParcourir les chaînesTemplate LiteralsMéthodes des chaînesRécapitulatif - String Weaver4JSON Partie 2
Itérer sur du JSONJSON imbriquéChaînage optionnel JSONCopie superficielle et profondeRécapitulatif - Magasin de vélosRécapitulatif - Système solaire7Système de gestion de bibliothèque
Présentation du projetAjouter des livres2Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliers (Jagged Arrays)Tableaux 3D et au-delàModèles courants de tableaux 2DRécapitulatif - Tout sur les tableaux3JSON Partie 1
Qu'est-ce qu'un JSON ?Vérifier si une clé existeMéthodes d'objetL'opérateur Spread Partie 1L'opérateur Spread Partie 2Supprimer des clésRécapitulatif - Manipuler les clés JSON