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 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));
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 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
    })
}
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