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