code.progysm.com

Array.prototype.sort

Syntaxe:
	Array anArray.sort([ Function sortFunction ])

Argument:
	Function sortFunction [optionel] fonction de tri des éléments
		la fonction possède deux arguments (item1, item2) et doit retourner un nombre négatif (à gauche), 0 (égal) ou positif (à droite).
		définition:   Number function(item1, item2) { return -1|0|1; }

Retour:
	Array nouveau Array

Défaut:
	Si le premier argument (sortFunction) n'est pas spécifié, le tri se fait à l'aide de chaîne de caractères (tri alphabétique).
	C'est à dire que "A" < "a", "a" < "b", "2" < "11". Voir aussi String.charCodeAt

Compatibilité:
	Avec Gecko, il est possible de retourner vrai/faux. Exemple: function(item1,item2) { return item1 < item2; }
	En chrome/nodejs, retourner une valeur booléenne ne trie pas le tableau dans tous les cas.

Exemple de problème de compatibilité (avec retour booléen, plus grand que):
	[654606, 254901, 919742, 953651, 513680, 130482, 463302, 857544, 670738, 947757, 314728].sort( function(a,b) { return a > b; } )

	Résultat avec Gecko:
		[130482, 254901, 314728, 463302, 513680, 654606, 670738, 857544, 919742, 947757, 953651]
	
	Résultat avec nodejs:
		[130482, 314728, 254901, 463302, 513680, 654606, 670738, 857544, 919742, 947757, 953651]

Solution au problème (retourner un nombre, avec une soustraction):
	[654606, 254901, 919742, 953651, 513680, 130482, 463302, 857544, 670738, 947757, 314728].sort( function(a,b) { return a - b; } )

	Résultat avec Gecko:
		[130482, 254901, 314728, 463302, 513680, 654606, 670738, 857544, 919742, 947757, 953651]
	
	Résultat avec nodejs:
		[130482, 254901, 314728, 463302, 513680, 654606, 670738, 857544, 919742, 947757, 953651]