Clasificación arrays en JavaScript se realiza mediante el método de Array.sort ().
Al pasar por una referencia de función en Array.sort ()
Como tocado ya, Array.sort () acepta un parámetro opcional en forma de una referencia de función (le llaman sortfunction). El formato de esta función es el siguiente:
Array.sort (sortfunction) función sortfunction (a, b) { / / Comparar "a" y "b" de alguna manera, y devuelve -1, 0 o 1 }
Cuando dicha función se pasa a Array.sort (), los elementos de la matriz se ordenan en función de la relación entre cada par de elementos "a" y "b" y el valor de la función de retorno. Los tres números posibles de retorno son: <0 (menos de 0), 0 o> 0 (mayor que 0):
- Menos de 0: Ordenar "a" a ser un índice inferior a la "b"
- Cero: "a" y "b" deben ser considerados iguales, y no realizó ninguna clasificación.
- Mayor que 0: Ordenar "b" para ser un índice inferior a "A".
Para ordenar una matriz numérica y ascendente, por ejemplo, el cuerpo de su función se vería así:
función sortfunction (a, b) { retorno (a - b) / / causas una matriz para ser ordenados numéricamente y ascendente }
Ordenar una matriz de dos dimensiones en el orden numérico
Para ordenar una matriz en orden numérico, simplemente pasar un sortfunction personalizado en Array.sort () que devuelve la diferencia entre "a" y "b", los dos parámetros de forma indirecta / automáticamente en la función:
<script type="text/javascript"> var aa = [["b", 3], ["A", 4], ["e", 2], ["d", 1]]; aa.sort (function (x, y) {return x [1] y [1]}); / / Array se convierte ahora en [["d", 1], ["e", 2], ["b" , 3], ["A", 4]] </ Script>
Esto funciona de la manera que lo hace porque siempre que "a" es menor que "b", un valor negativo se devuelve, lo que resulta en los elementos más pequeños siempre que aparece a la izquierda de los más grandes, en otras palabras, ascendiendo.
Ordena una matriz numérica, pero descendente no es muy diferente, y sólo será necesario invertir los dos operandos "a" y "b":
<script type="text/javascript"> var aa = [["b", 3], ["A", 4], ["e", 2], ["d", 1]]; aa.sort (function (x, y) {return y [1] x [1]}); / / Array se convierte ahora en [["a", 4], ["b", 3], ["e" , 2], ["d", 1]] </ Script>
Ordenar una matriz de dos dimensiones en orden alfabético
<script type="text/javascript"> var aa = [["b", 3], ["A", 4], ["e", 2], ["d", 1]]; la función por orden alfabético (a, b) { var a = a [0]; var B = b [0] toLowerCase ().; Un A.toLowerCase = (); B = B.toLowerCase (); si (A <B) return -1; if (A> B) return 1; return 0; } alerta (aa.sort (por orden alfabético)); </ Script>

这个 很 有深度 啊
在 来看 下 呵呵