Méthode sort

La méthode sort effectue le tri d'un tableau dans l'ordre lexicographique et retourne le tableau déjà modifié. Un paramètre optionnel permet de spécifier une fonction personnalisée pour le tri.

Syntaxe

javascripttableau.sort([fonction]);

Exemple

Trier un tableau :

javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());

Résultat de l'exécution du code :

javascript['a', 'b', 'c', 'd']

Exemple

Trier un tableau de nombres :

javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());

Résultat de l'exécution du code :

javascript[1, 2, 4, 7]

Exemple

Ajoutons des nombres dans un tableau et trions-le :

javascriptlet arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());

En exécutant le code, nous voyons que les nombres ne sont pas placés dans l'ordre croissant, mais dans l'ordre lexicographique, c'est-à-dire que les nombres sont comparés entre eux comme des chaînes de caractères. La comparaison se fait caractère par caractère, en vérifiant si le code du premier caractère est supérieur à celui du caractère adjacent, etc. Résultat :

javascript[1, 111, 123, 2, 4, 7]

Exemple

Maintenant, trions un tableau à l'aide d'une fonction, dans laquelle nous spécifions la condition - si le premier paramètre est supérieur au second, alors nous les inversons (pour cela, dans return, mettre n'importe quel nombre positif). Dans le cas contraire, l'inversion n'est pas nécessaire et nous indiquons 0 ou n'importe quel nombre négatif :

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  if (a > b) {
    return 1;
  } else {
    return -1;
  }
});

console.log(arr);

Résultat de l'exécution du code :

javascript[1, 2, 4, 7, 111, 123]

Exemple

Simplifions le code de notre fonction de l'exemple précédent :

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return a - b;
});

console.log(arr);

Résultat de l'exécution du code :

javascript[1, 2, 4, 7, 111, 123]

Exemple

Maintenant, avec une fonction, trions le tableau dans l'ordre décroissant :

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return b - a;
});

console.log(arr);

Résultat de l'exécution du code :

javascript[123, 111, 7, 4, 2, 1]

Exemple

Trier un tableau d'objets par la clé 'one' dans l'ordre croissant :

javascriptlet arr = [
  {one: 1, two: 2},
  {one: 7, two: 1},
  {one: 3, two: 3}
];
arr.sort(function(a, b) {
  return a.one - b.one;
});

console.log(arr);

Résultat de l'exécution du code :

javascript[
  {one: 1, two: 2},
  {one: 3, two: 3},
  {one: 7, two: 1}
]

Exemple

Maintenant, trions le tableau d'objets par la clé 'two' :

javascriptlet arr = [
  {one: 1, two: 2},
  {one: 7, two: 1},
  {one: 3, two: 3}
];
arr.sort(function(a, b) {
  return a.two - b.two;
});

console.log(arr);

Résultat de l'exécution du code :

javascript[
  {one: 7, two: 1},
  {one: 1, two: 2},
  {one: 3, two: 3}
]

Exemple

Vérifions si le tableau a changé après l'application de la méthode sort :

javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();

console.log(arr);

Résultat de l'exécution du code :

javascript['a', 'b', 'c', 'd']

Voir aussi

  • la méthode filter,
    qui permet de filtrer les éléments d'un tableau