Recentemente, o problema da classificação do JS é que a classificação do banco de dados está consumindo muito recursos. No cliente, exceto JS, é como. Essência Essência Após o meu teste, o tipo de método JS construído é muito eficiente
Sabemos que a função de classificação é fornecida por padrão no JS, mas essa função é organizada de acordo com os códigos ASCII do conteúdo da matriz. Existe uma função multi_sort no PHP para chamá -la, mas parece não haver essa função em JS, mas não importa, porque a função de classificação do JS também fornece parâmetros que podem definir a função de comparação para matrizes bidimensionais.
1. Classificar por valor numérico
Assumindo a seguinte matriz
Copie o código do código da seguinte forma:
var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]];
O que fazemos se quisermos classificar a primeira coluna de cada sub -gravação?
Copie o código do código da seguinte forma:
Arr.sort (função (x, y) {
Retornar x [0] y [0];
});
Qual é o papel da função de comparação aqui? De fato, a matriz é replicada para x, y, por sua vez, por exemplo, primeiro atribua ARR [0] a x, arr [1] a y e depois use x [0] y [0]. , se o valor de retorno, se você retornar, retorne ao retorno. Y, e os dois primeiros são classificados. Esta é uma função de comparação da sequência padrão. é classificado na primeira coluna. A classificação aqui modificará a estrutura da matriz do ARR, de modo que o ARR de classificação é uma matriz promovida de acordo com a primeira coluna.
2. Classificar por string
Se você for classificado por uma string, podemos usar o método localCompare fornecido por JS,
LocalECompare: Compare duas string em uma ordem específica.
As regras de uso do método localCompare são StringObject.localecMome (Target). Se o StringObject for maior que o alvo, o método retornará um número maior que 0. Se as duas strings forem iguais ou não houver diferença de acordo com as regras de classificação local, esse método retorna 0. O dispositivo é comparado com as regras locais. Sistema operacional.
por exemplo
Copie o código do código da seguinte forma:
var arr = [['em', 'country'], ['ah', ''], ['oh', '', '];
Arr.sort (função (x, y) {
Retornar x [0] .localecompare (y [0]);
});
Como resultado, ele será classificado no Pinyin da primeira coluna de caracteres chineses de corda é classificada, incluindo fila mista chinês e sino -britânica. Quanto à ordem de ordenação, o método é o mesmo que o acima, e o método é alterado para retornar y [0] .localecompare (x [0]);
Dessa forma, o problema da classificação é realizado e ainda há muitos lugares para as matrizes de duas dimensões do JS. Espero ajudar algumas pessoas
Copie o código do código da seguinte forma:
Função tblsort (s) {
for (r = 0; r <right_len; r ++) {
ARRS [r] = []
for (c = 0; c <CEL_LEN; C ++) {
ARRRS [R] [C] = {} // Crie outro objeto na matriz bilimensional;
Ars [r] [c] .html = tabela.Rows [r] .Cells [c] .innerhtml // Coloque a tabela de html em uma matriz associada e exibida na página após a classificação;
var texto = tabela.Rows [r] .Cells [c] .innerText // Obtenha o conteúdo de texto do formulário para os julgamentos a seguir;
// a detecção que pode parecer negativa se os dados não forem normais, classificando -se no final;
if (text == '-') {{
ARRS [r] [c] .Text = '-1';
} else if (text == 'reintegle') {{
ARRS [R] [C] .Text = '-2';
} else if (text == 'sem snapshot Baidu' || text == 'sem dados de classificação') {
ARRS [R] [C] .Text = '-3'
} else if (text == '') {
ARRS [R] [C] .Text = '-4'
} Outro {
ars [r] [c] .text = tabela.Rows [r] .Cells [c] .innerText // Coloque o conteúdo de texto da tabela em uma matriz associada. Para classificar abaixo para classificar.
}
}
}
// alerta (arrs [0] [0] ['texto'])
// Reve julgamento está atualmente classificado ou Desewess;
if (reveve) {
Arrs.sort (função (x, y) {
Retorne parsefloat (y [s] ['text']) -parsefloat (x [s] ['text'])
});
Reveve = 0
} Outro {
Arrs.sort (função (x, y) {
Retorne parsefloat (x [s] ['text']) -parsefloat (y [s] ['text']) //
})
Reve = 1
}
// Coloque o conteúdo HTML reto no formulário
for (r = 0; r <right_len; r ++) {
for (c = 0; c <CEL_LEN; C ++) {
tabela.Rows [r] .Cells [c] .innerhtml = ars [r] [c] ['html']]]
}
}
}
// Tabela de classificação termina