Embauchez-moi

Je suis freelance ! Besoin d'un professionnel du développement web ? Pourquoi ne pas me passer un coup de fil ?

Plus d'infos sur… http://thibault.jouannic.fr

mots-cles : Ingénieur web freelance Symfony eZ Publish Solr

Trier un tableau de nombres avec Javascript

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

  1. jerome
    Posté le 03/04/2011 à 14:46 | Permalien

    c’est diabolique comme méthode !!!! ca marche avec des tableaux associatifs c’est incroyable !

  2. Ryu
    Posté le 17/05/2011 à 14:42 | Permalien

    Woaahh merci j’en cherchais une depuis un bon moment une facon de trier les chiffres comme faut <3