Wenn es um die Tabellensortierung geht, muss zunächst über die Sortierung von Arrays gesprochen werden, da die Array-Sortierung die Grundlage der Tabellensortierung ist. JavaScript stellt die Methode sort() für Arrays zum Sortieren von Tabellen bereit. Standardmäßig ordnet diese Methode die Arrays in der Reihenfolge der ASCII-Codes an. Javascript stellt auch die Methode reverse() für Arrays bereit.
Schauen Sie sich das Beispiel an:
1 function sortArray(){
2 var arrayTest = ["z",5,2,"a",32,3];
3 arrayTest. sort() ;
4 Alert(arrayTest.toString()); //output:2,3,32,5,a,z
5 arrayTest.reverse();
6 Alert(arrayTest. toString() ); //output:z,a,5,32,3,2
7 }
8 sortArray(); Haha, 5 ist größer als 32. Offensichtlich ist das nicht das Ergebnis, das wir wollen. Gerade wurde gesagt, dass die Methode sort() nach der Reihenfolge der ASCII-Codes sortiert. Tatsächlich ermöglicht die Methode sort() auch einen Parameter vom Funktionstyp, den wir als Vergleichsfunktion bezeichnen können. Wenn die Vergleichsfunktion zwei Parameter empfangen kann, hat der Rückgabewert der Funktion folgende Bedeutung:
- 1: Der erste Parameter ist kleiner als der zweite Parameter
0: Der erste Parameter ist gleich dem zweiten Parameter
1: Der erste Parameter ist größer als der zweite Parameter
Sehen Sie sich ein Beispiel an:
1 /**
*/
10 // Wenn beide Parameter vom Typ String sind
11 if (typeof param1 == "string" && typeof param2 == " string"){
12 return param1.localeCompare(param2);
13 }
14 //Wenn Parameter 1 eine Zahl ist, ist Parameter 2 eine Zeichenfolge
15 if(typeof param1 == "number " && typeof param2 == "string"){
16 return -1;
17 }
18 //Wenn Parameter 1 eine Zeichenfolge ist, ist Parameter 2 eine Zahl
19 if( typeof param1 = = "string" && typeof param2 == "number"){
20 == " number" && typeof param2 == "number"){
24 if(param1 > param2) return 1;
25 if(param1 == param2) return 0;
26 if(para m1 < param2 ) return -1;
27} 28} Wenn wir arrayTest.sort (comparefunc) ausführen, erhalten wir das richtige Ergebnis.
An dieser Stelle müssen wir die Verwendung der Methode localeCompare() erklären. Diese Methode ist eine Methode zum Sortieren von Zeichenfolgen. Sie hat nur einen Parameter, nämlich die zu vergleichende Zeichenfolge. Die spezifischen Anweisungen lauten wie folgt:
1. Wenn das String-Objekt in alphabetischer Reihenfolge vor der Zeichenfolge im Parameter angeordnet ist, wird eine negative Zahl zurückgegeben
2. Wenn das String-Objekt in alphabetischer Reihenfolge nach der Zeichenfolge angeordnet ist im Parameter wird eine positive Zahl zurückgegeben
3. Wenn das String-Objekt gleich der Zeichenfolge im Parameter ist, wird 0 zurückgegeben
Darüber hinaus verfügt die Methode localeCompare() über eine weitere einzigartige Funktion, die gefunden werden kann In seiner Methodensignatur kann das Gebietsschema (lokal, lokal) widergespiegelt werden, das heißt, seine Implementierung basiert auf regionalen Merkmalen. Wenn es sich im englischen System befindet, kann seine Implementierung in aufsteigender Reihenfolge der Zeichenfolgen erfolgen , seine Umsetzung kann im Einklang mit dem Pinyin des ersten Buchstabens erfolgen. Haha, das bedeutet, dass unsere Sortierung nicht schief geht, selbst wenn wir chinesische Schriftzeichen in das Programm einbeziehen.
Beziehen Sie sich auf das folgende Verfahren:
1 var testArray = ["Zheng", "zhou", "xin", "source", "xin", "information", "technology", "technical", " stock“, „share“, „you“, „limit“, „public“, „division“ ];
2 document.write(testArray.sort(
3) function CompareFunction(param1,param2){
4 return param1.localeCompare(param2); //Ausgabe: fen, Firma, Lager, Technologie, Technologie, Unternehmen, Informationen, begrenzt, Brief, Information, Quelle, Zhengzhou
5 } }
6 )) ;