1. Es gibt bereits zwei Methoden im Array, die direkt zum Neuordnen verwendet werden können: reverse() und sort().
Der Rückgabewert der Methoden reverse() und sort() ist das sortierte Array. Die Methode reverse() kehrt die Reihenfolge der Array-Elemente um:
var values=[1,2,3,4,5]; values.reverse(); alert(values); //5,4,3,2,1
Standardmäßig sortiert die Methode sort() das Array in aufsteigender Reihenfolge, sort () Die Methode ruft die Konvertierungsmethode toString() für jedes Array-Element auf und vergleicht dann die Zeichenfolgen, um zu bestimmen, wie sortiert werden soll. Obwohl jedes Element im Array ein numerischer Wert ist, vergleicht die Methode sort() Zeichenfolgen:
var values = [0,1,5,10,15]; values.sort(); alert(values); //0,1,10,15,5
Daher kann die Methode sort() empfangen Eine Vergleichsfunktion als Argument.
function compare(value1,value2){ if (value1 < value2){ return -1; }else if (value1 > value2){ return 1; }else{ return 0; } }
Diese Vergleichsfunktion kann auf die meisten Datentypen angewendet werden. Übergeben Sie sie einfach als Parameter an die Methode sort():
var values = [0,1,3,7,9,15]; values.sort(compare); alert(values); //0,1,3,7,9,15
Absteigende Sortierung kann auch durch Vergleichsfunktionen erzeugt werden, tauschen Sie einfach die Rückgabewerte der Funktion aus:
function compare (value1, value2){ if (value1<value2){ return 1; }else if { return -1; }else{ return 0; } }
Die Sortierung Bedingungen der Funktion
sort() sind: Parameter
ist größer als 0, zwei benachbarte Elemente von arr tauschen Positionen aus;
Parameter ist kleiner als 0, zwei benachbarte Elemente von arr Die Elemente tauschen ihre Positionen nicht aus; der Parameter
ist gleich 0 und die beiden benachbarten Elemente von arr sind gleich groß, daher muss die benutzerdefinierte Vergleichsfunktion einen Wert zurückgeben.
2. Bei numerischen Typen gibt die valueOf()-Methode den Objekttyp des numerischen Typs zurück.
Eine einfachere Vergleichsfunktion kann verwendet werden. Diese Funktion benötigt nur den zweiten Wert minus dem ersten Wert.
function compare (value1,value2){ return value2 - value1; }