Vor kurzem ist das Problem der JS -Sortierung, dass die Datenbanksortierung zu konsumierende Ressourcen ist. Im Kunden, außer JS, ist es als wie. Wesen Wesen Nach meinem Test ist die JS -baute Methode Sortierung sehr effizient
Wir wissen, dass die Sortierfunktion in JS standardmäßig bereitgestellt wird, aber diese Funktion ist gemäß den ASCII -Codes des Array -Inhalts angeordnet. Es gibt eine Multi_Sort -Funktion in PHP, um sie aufzurufen, aber es scheint keine solche Funktion in JS zu geben, aber es spielt keine Rolle, da die Sortierfunktion von JS auch Parameter liefert, die die Vergleichsfunktion für zwei dimensionale Arrays definieren können.
1. sortieren nach numerischen Wert
Angenommen das folgende Array
Kopieren Sie den Code -Code wie folgt:
var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]];
Was tun wir, wenn wir die erste Spalte jedes Sub -Array sortieren wollen?
Kopieren Sie den Code -Code wie folgt:
Arr.sort (Funktion (x, y) {
Return x [0] y [0];
});
Welche Rolle spielt die Vergleichsfunktion hier? Tatsächlich wird das Array in x, y kopiert, um zuerst arr [0] arr [1] y zuerst arr [0] zuweisen und dann x [0] y [0] verwenden, um nach zurückzugeben nach Der Rückgabewert. Und dann werden die ersten beiden sortiert. Dies ist eine Vergleichsfunktion der Standardsequenz. wird in der ersten Spalte sortiert. Die Sortierung hier ändert die Array -Struktur des ARR, sodass der Sortier -ARR ein Array ist, das gemäß der ersten Spalte gefördert wird.
2. Sortieren Sie nach String
Wenn Sie nach einer Zeichenfolge sortiert sind, können wir die von JS bereitgestellte LocalCompare -Methode verwenden.
LOCALECOMPARE: Vergleichen Sie zwei Zeichenfolge in einer bestimmten Reihenfolge.
Die Verwendungsregeln der LocalCompare -Methode sind StringObject.localCompare (Ziel). Wenn StringObject größer als das Ziel ist, gibt die Methode eine Zahl mehr als 0 zurück. Wenn die beiden Zeichenfolge gleich ist oder es keinen Unterschied entsprechend den lokalen Sortierregeln gibt, gibt diese Methode 0 zurück. Das Gerät wird mit den lokalen Regeln verglichen. Betriebssystem.
Zum Beispiel
Kopieren Sie den Code -Code wie folgt:
var arr = ['Middle', 'Land'], ['Ah', ''], ['Oh', '', '];
Arr.sort (Funktion (x, y) {
Return x [0] .LocalCompare (y [0]);
});
Infolgedessen wird es im Pinyin der ersten Spalte chinesischer Zeichen sortiert von Saite wird sortiert, einschließlich chinesischer und chinesisch -britischer gemischter Reihe. In Bezug auf die Reihenfolge der Bestellung entspricht die Methode mit der oben genannten und die Methode, um y [0] .LocalCompare (x [0]) zurückzugeben;
Auf diese Weise wird das Problem der Sortierung realisiert, und es gibt immer noch viele Orte für JS zweidimensionale Arrays. Ich hoffe, einigen Menschen zu helfen
Kopieren Sie den Code -Code wie folgt:
Funktion tblsort (s) {
für (r = 0; r <right_len; r ++) {
arrs [r] = []
für (c = 0; c <cel_len; c ++) {
Arrrs [r] [c] = {} // Erstellen Sie ein anderes Objekt in dem zweidimensionalen Array;
Arrs [r] [c] .html = table.rows [r] .cells [c] .innerhtml // die Tabelle von HTML in ein zugeordnetes Array einfügen und auf der Seite nach dem Sortieren angezeigt werden;
var text = table.rows [r] .cells [c] .InNerText // den Textinhalt des Formulars für die folgenden Urteile abrufen;
// Die Erkennung, die möglicherweise negativ erscheinen scheint, wenn die Daten nicht normal sind, und am Ende rangiert;
if (text == '-') {{{{
arrs [r] [c] .Text = '-1';
} else if (text == 'renintegle') {{{{{{
arrs [r] [c] .Text = '-2';
} else if (text == 'no baidu snapshot' || text == 'no Ranking -Daten') {
arrs [r] [c] .Text = '-3'
} else if (text == '') {
arrs [r] [c] .Text = '-4'
} Anders {
arrs [r] [c] .Text = table.rows [r] .cells [c] .InNerText // den Textinhalt der Tabelle in ein zugehöriges Array einfügen. Für die Sortierung unten zum Sortieren.
}
}
}
// alarm (arrs [0] [0] ['text'])
// Reve -Urteilsvermögen ist derzeit sortiert oder wesentlich;
if (reve) {
arrsort (Funktion (x, y) {
Return Parsefloat (y [s] ['Text']) -Parsefloat (x [S] ['Text'])
});
Reve = 0
} Anders {
arrsort (Funktion (x, y) {
Return Parsefloat (x [s] ['text']) -Parsefloat (y [s] ['text']) //
})
Reve = 1
}
// Legen Sie den Ruder -HTML -Inhalt in das Formular ein
für (r = 0; r <right_len; r ++) {
für (c = 0; c <cel_len; c ++) {
table.rows [r] .cells [c] .innerhtml = arrs [r] [c] ['html']]
}
}
}
// Tischsortierung endet