Recientemente, el problema de la clasificación de JS es que la clasificación de la base de datos es demasiado consumidor de recursos. En el cliente, excepto JS, es como. Esencia Esencia Después de mi prueba, el tipo de método JS Built -in es muy eficiente
Sabemos que la función de clasificación se proporciona de forma predeterminada en JS, pero esta función está organizada de acuerdo con los códigos ASCII del contenido de la matriz. Hay una función multi_sort en PHP para llamarlo, pero parece que no hay tal función en JS, pero no importa, porque la función de clasificación de JS también proporciona parámetros que pueden definir la función de comparación para matrices de dos dimensiones.
1. Ordenar por valor numérico
Suponiendo la siguiente matriz
Copiar código del código de la siguiente manera:
var arr = [1, 2, 3], [7, 2, 3], [3, 2, 3]];
¿Qué hacemos si queremos ordenar la primera columna de cada subrainio?
Copiar código del código de la siguiente manera:
Arr.sort (function (x, y) {
Return x [0] y [0];
});
¿Cuál es el papel de la función de comparación aquí? De hecho, la matriz se copia a x, y en orden a su vez, por ejemplo, primero asigne arr [0] a x, arr [1] a y, y luego use x [0] y [0] para regresar de acuerdo con El valor de retorno. Y luego se clasifican los dos primeros. Esta es una función de comparación de la secuencia predeterminada. se clasifica en la primera columna. La clasificación aquí modificará la estructura de la matriz del ARR, por lo que la clasificación ARR es una matriz que se promueve de acuerdo con la primera columna.
2. Ordenar por cadena
Si está ordenado por una cadena, podemos usar el método LocalEcompare proporcionado por JS,
LocalEcompare: compare dos cadenas en un orden particular.
Las reglas de uso del método LocalEcompare son StringObject.localecomPare (Target). Si StringObject es mayor que el objetivo, el método devuelve un número mayor que 0. Si las dos cadenas son iguales, o no hay diferencia de acuerdo con las reglas de clasificación local, este método regresa 0. El dispositivo se compara con las reglas locales. sistema operativo.
Por ejemplo
Copiar código del código de la siguiente manera:
var arr = ['medio', 'país'], ['ah', ''], ['oh' ',' ','];
Arr.sort (function (x, y) {
Return x [0] .localecompare (y [0]);
});
Como resultado, se clasificará en el pinyin de la primera columna de los caracteres chinos. de cuerda se clasifica, incluida la fila mixta china y china y británica. En cuanto al orden de orden, el método es el mismo que el anterior, y el método se cambia para devolver y [0] .localecompare (x [0]);
De esta manera, el problema de la clasificación se realiza, y todavía hay muchos lugares para las matrices de dos dimensiones JS. Espero ayudar a algunas personas
Copiar código del código de la siguiente manera:
Función tblsort (s) {
para (r = 0; r <right_len; r ++) {
ARRS [r] = []
para (c = 0; c <cel_len; c ++) {
Arrrs [r] [c] = {} // Cree otro objeto en la matriz de dos dimensiones;
Arrs [r] [c] .html = table.rows [r] .cells [c] .innerhtml // Pon la tabla de html en una matriz asociada y se muestra en la página después de clasificar;
var text = table.rows [r] .Cells [c] .inntext // Obtener el contenido de texto del formulario para los siguientes juicios;
// la detección que puede parecer negativa si los datos no son normales, clasificando al final;
if (text == '-') {{
arrs [r] [c] .Text = '-1';
} else if (text == 'reintegle') {{
arrs [r] [c] .Text = '-2';
} else if (text == 'No Baidu Snapshot' || text == 'no datos de clasificación') {
ARRS [r] [c] .Text = '-3'
} else if (text == '') {
ARRS [r] [c] .Text = '-4'
} Demás {
ARRS [R] [C] .Text = Table.Rows [R] .Cells [C] .innertext // Pon el contenido de texto de la tabla en una matriz asociada. Para clasificar a continuación para clasificar.
}
}
}
// alerta (arrs [0] [0] ['text'])
// El juicio de Reve está actualmente ordenado o desesado;
if (reve) {
arrs.sort (function (x, y) {
Return parsefloat (y [s] ['text']) -parsefloat (x [s] ['text'])
});
Reve = 0
} Demás {
arrs.sort (function (x, y) {
Return parsefloat (x [s] ['text']) -parsefloat (y [s] ['text']) //
})
Reve = 1
}
// Poner el contenido HTML remado en el formulario
para (r = 0; r <right_len; r ++) {
para (c = 0; c <cel_len; c ++) {
table.rows [r] .Cells [c] .innerhtml = arrs [r] [c] ['html']]]
}
}
}
// extremos de clasificación de mesa