J’adore javascript. Je l’avoue. Malgré sa syntaxe parfois complètement tordue, malgré son mépris total pour le principe de moindre suprise, malgré son niveau élevé sur l’échelle du WTF, ce langage a un petit quelque chose qui me plaît bien. C’est comme pour les personnes, on a les atomes crochus, ou on ne les a pas.
D’ailleurs, dans le genre de surprise qu’on peut avoir en codant, j’ai été joliment étonné en voulant trier un tableau de nombres.
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.
2 Commentaires
c’est diabolique comme méthode !!!! ca marche avec des tableaux associatifs c’est incroyable !
Woaahh merci j’en cherchais une depuis un bon moment une facon de trier les chiffres comme faut <3