Menu
Coddy logo textTech

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 array sur place et renvoie l'array trié. Par défaut, elle trie les éléments sous forme de chaînes de caractères par ordre alphabetically et ascending.

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 correctement des nombres 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 vous trieriez 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 façon 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 (alphabétiquement utiliser localeCompare())
people.sort((a, b) => a.name.localeCompare(b.name));
challenge icon

Défi

Facile

Cré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 par ordre croissant. Si deux chaînes ont la même longueur, elles doivent être triées par ordre alphabétique.

Essayez vous-même

function sortByLength(arr) {
    return arr.sort((a, b) => {
        // Écrivez le code ici
    })
}
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur JavaScript en ligne