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.