Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
| Array.sort( ) | Sortiert die Elemente eines Arrays |
array.sort( ) array.sort(sortierfunktion)
Eine Referenz auf das Array. Es wird vor Ort sortiert und nicht kopiert.
Die sort( )-Methode sortiert die array-Elemente vor Ort, ohne das Array zu kopieren. Wird sie ohne Argumente aufgerufen, so werden die Array-Elemente in alphabetischer Reihenfolge (genauer gesagt: in der Reihenfolge, die die Zeichencodierung festlegt) sortiert. Damit ein Vergleich möglich ist, werden die Elemente notfalls zuvor in Strings konvertiert.
Wenn Sie die Array-Elemente in eine andere Reihenfolge bringen möchten, müssen Sie eine Vergleichsfunktion angeben, die zwei Werte vergleicht und eine Zahl zurückgibt, die ihre Reihenfolge anzeigt. Die Vergleichsfunktion sollte die beiden Argumente a und b entgegennehmen und eines der folgenden Ergebnisse liefern:
Einen kleineren Wert als null, wenn nach Ihren Sortierkriterien a kleiner als b ist und im sortierten Array vor b stehen soll.
Null, wenn a und b bei dieser Sortierung äquivalent sind.
Einen Wert größer null, wenn a nach Ihren Sortierkriterien größer als b ist.
Beachten Sie, dass nicht-definierte Elemente eines Arrays immer an das Array-Ende sortiert werden. Das gilt auch dann, wenn Sie eine eigene Sortierfunktion bereitstellen: Nicht-definierte Werte werden der von Ihnen angegebenen sortierfunktion nicht übergeben.
Der folgende Code zeigt, wie Sie beispielsweise eine Vergleichsfunktion schreiben können, um ein Zahlen-Array nicht alphabetisch, sondern numerisch zu sortieren:
// Eine Funktion für eine numerische Sortierung
function numberorder(a, b) { return a - b; }
a = new Array(33, 4, 1111, 222);
a.sort( ); // Alphabetische Sortierung: 1111, 222, 33, 4
a.sort(numberorder); // Numerische Sortierung: 4, 33, 222, 1111