Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint
Array.sort( )Sortiert die Elemente eines Arrays

Überblick

array.sort( )
array.sort(sortierfunktion)

Argumente


sortierfunktion

Optional eine Funktion, die die Sortierreihenfolge festlegt.

Rückgabewert

Eine Referenz auf das Array. Es wird vor Ort sortiert und nicht kopiert.

Beschreibung

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.

Beispiel

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

  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint