JavaScript-Array sort()-Methode

Der sort()> Methode in JavaScript ordnet die Elemente eines Arrays an Ort und Stelle an und gibt das sortierte Array zurück. Standardmäßig werden Elemente alphabetisch sortiert und als Zeichenfolgen behandelt.

Für die numerische Sortierung können Sie jedoch eine benutzerdefinierte Vergleichsfunktion bereitstellen. Diese Funktion gibt die Sortierkriterien vor und ermöglicht so eine präzise Steuerung des Sortiervorgangs. „sort()“ steigert die Effizienz und Funktionalität von JavaScript-Anwendungen, indem es Ihnen ermöglicht, Array-Elemente nach spezifischen Anforderungen auf professionelle und formale Weise zu organisieren.

Syntax

arr.sort(compareFunction); 

Parameter

  • array> : Das zu sortierende Array.
  • compareFunction> (Optional): Eine Funktion, die die Sortierreihenfolge definiert. Wenn es weggelassen wird, werden die Array-Elemente basierend auf ihren String-Unicode-Codepunkten sortiert.

Rückgabewert

Diese Methode gibt die Referenz des sortierten Originalarrays zurück.

Beispiele:

Beispiel 1: Sortieren eines String-Arrays

Dieses Beispiel zeigt die Verwendung der Funktion sort().

JavaScript
// JavaScript to illustrate sort() function function func() {  // Original string  let arr = ['Geeks', 'for', 'Geeks']  console.log(arr);  // Sorting the array  console.log(arr.sort()); } func(); 

Ausgabe
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ] 

Erläuterung:

Der sort()> Die Methode ordnet die Elemente der neu an arr> alphabetisch sortiert und erzeugt so die Ausgabe ['Geeks', 'Geeks', 'for']> .

Beispiel 2: Sortieren eines Zahlenarrays ohne Vergleichsfunktion

Hier das Sortieren() Die Methode ordnet die Elemente des Arrays in aufsteigender Reihenfolge an.

JavaScript
// JavaScript to illustrate sort() function function func() {  //Original string  let arr = [2, 5, 8, 1, 4]  //Sorting the array  console.log(arr.sort()); } func(); 

Ausgabe
[ 1, 2, 4, 5, 8 ] 

Erläuterung:

Der sort()> Die Methode wird für ein Array von Zahlen aufgerufen [2, 5, 8, 1, 4]> . Der sort()> Die Methode sortiert die Elemente alphabetisch, da keine Vergleichsfunktion bereitgestellt wird. Daher wird die Ausgabe sein [1, 2, 4, 5, 8]> , die alphabetisch nach den Zeichenfolgedarstellungen der Zahlen sortiert ist.

Beispiel 3: Numerische Werte ohne Vergleichsfunktion sortieren

Hier sortieren wir numerische Werte ohne Vergleichsfunktion

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0] console.log(numbers.sort()) 

Ausgabe
[ -120, 0, 100, 20, 30, 5.2 ] 

Erläuterung:

Wenn Sie das verwenden sort()> Bei einer Methode ohne Vergleichsfunktion sortiert JavaScript Array-Elemente standardmäßig als Zeichenfolgen, was bei numerischen Arrays möglicherweise nicht immer zu den erwarteten Ergebnissen führt. Lassen Sie uns den Sortiervorgang aufschlüsseln:

  • JavaScript wandelt jedes Element des Arrays in einen String um.
  • Anschließend vergleicht es die UTF-16-Codeeinheiten jedes Zeichens in den Zeichenfolgen und sortiert sie basierend auf dem Unicode-Codepunktwert.

Folgendes passiert mit Ihrem Array:

  • Die Zahlen werden in Strings umgewandelt: ['20', '5.2', '-120', '100', '30', '0']> .
  • Bei alphabetischer Sortierung -120> kommt zuerst, weil -> hat einen niedrigeren Unicode-Codepunktwert als Ziffern ( 0> Zu 9> ). Dann kommt 0> , gefolgt von 100> , 20> , 30> , Und 5.2> .

Beispiel 4: Numerische Werte mit Vergleichsfunktion sortieren

Wir können den unerwarteten Fehler, der im obigen Beispiel aufgetreten ist, beheben, indem wir die Methode sort() für Zahlen mithilfe der folgenden Vergleichsfunktion verwenden.

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic:   20 - (5.2) = +ve =>5.2 würde vor 20 platziert werden, 20 - (-120) = +ve => -120 würde vor 20 platziert werden, 20 - (100) = -ve => 100 würde nach 20 platziert werden, 20 - (30) = - ve => 30 würde nach 20 platziert, 20 - (0) = +ve => 0 würde vor 20 platziert werden. Ebenso überprüfen wir jedes Element und platzieren es entsprechend in Iterationen. */ Funktion vergleichen(a, b) { return a - b; } console.log(numbers.sort(compare)); 

Ausgabe
[ -120, 0, 5.2, 20, 30, 100 ] 

Erläuterung:

  • Der compare> Funktion subtrahiert b> aus a> . Wenn das Ergebnis negativ ist, a> kommt davor b> im sortierten Array; wenn positiv, b> kommt davor a> ; Wenn sie Null sind, bleibt ihre relative Reihenfolge unverändert.
  • Durch die Bereitstellung dieser benutzerdefinierten Vergleichsfunktion für sort()> -Methode sortiert JavaScript das Array numbers> basierend auf den numerischen Werten seiner Elemente.

Bitte gehen Sie das durch Wie sortiere ich ein numerisches Array mit JavaScript? , um zu erfahren, wie die Javascript-Array-Sortierfunktion funktioniert

Wir haben eine vollständige Liste der Javascript-Array-Methoden. Um diese zu überprüfen, gehen Sie bitte hier durch Vollständige Javascript-Array-Referenz Artikel.

Unterstützte Browser:

  • Google Chrome
  • Rand
  • Internet Explorer
  • Feuerfuchs
  • Oper
  • Safari