Trier un tableau de nombres en Javascript
Vous souhaitez trier un tableau en javascript : ne cherchez pas la réponse plus loin.
J'ai été joliment étonné la première fois que j'ai voulou trier un tableau de nombres en javascript.
var nombres = new Array(1, 2, 5, 8, 9, 12, 16);
nombres.sort();
alert(nombres);
// Et on obtient :
// 1, 12, 16, 2, 5, 8, 9
Génial ! La fonction sort de l'objet Array tri les éléments par ordre lexicographique (à ne pas confondre avec l'ordre alphabétique) !
Bon, et comment je fais, moi, pour trier mon tableau de nombre par ordre croissant ? Allez, je suis sympa, je vous donne la solution :
function compare(x, y) {
return x - y;
}
var nombres = new Array(1, 2, 5, 8, 9, 12, 16);
nombres.sort(compare);
alert(nombres);
// Et on obtient bien :
// 1, 2, 5, 8, 9, 12, 16
// Pour trier par ordre décroissant,
// on definira autrement la fonction compare :
function compare(x, y) {
return y - x;
}
Tellement simple. Tellement tordu. Tellement inattendu. J'adore. Je dois être un peu sado-maso sur les bords.