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
tableau.sort([fonction]);
Exemple
Trier un tableau :
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Résultat de l'exécution du code :
['a', 'b', 'c', 'd']
Exemple
Trier un tableau de nombres :
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Résultat de l'exécution du code :
[1, 2, 4, 7]
Exemple
Ajoutons des nombres dans un tableau et trions-le :
let 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 :
[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 :
let 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 :
[1, 2, 4, 7, 111, 123]
Exemple
Simplifions le code de notre fonction de l'exemple précédent :
let 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 :
[1, 2, 4, 7, 111, 123]
Exemple
Maintenant, avec une fonction, trions le tableau dans l'ordre décroissant :
let 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 :
[123, 111, 7, 4, 2, 1]
Exemple
Trier un tableau d'objets
par la clé 'one' dans l'ordre croissant :
let 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 :
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Exemple
Maintenant, trions le tableau d'objets
par la clé 'two' :
let 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 :
[
{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 :
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Résultat de l'exécution du code :
['a', 'b', 'c', 'd']
Voir aussi
-
la méthode
filter,
qui permet de filtrer les éléments d'un tableau