JavaScript-Array-Sortierung - Verwendung von JS-Sortiermethoden (mit Codebeispielen)

In JavaScript können wir die Elemente eines Arrays einfach mit einer integrierten Methode namens sort () sortieren.

Die Datentypen (Zeichenfolge, Nummer usw.) können sich jedoch von Array zu Array unterscheiden. Dies bedeutet, dass die Verwendung der sort () -Methode allein nicht immer eine geeignete Lösung ist.

In diesem Beitrag erfahren Sie, wie Sie ein Array in JavaScript mithilfe der sort () -Methode für Zeichenfolgen und Zahlen sortieren.

Array von Strings

Beginnen wir mit Strings:

const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];

Wenn wir die sort () -Methode verwenden, werden die Elemente standardmäßig in aufsteigender Reihenfolge (A bis Z) sortiert:

teams.sort(); // ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']

Wenn Sie das Array lieber in absteigender Reihenfolge sortieren möchten, müssen Sie stattdessen die reverse () -Methode verwenden:

teams.reverse(); // ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']

Array von Zahlen

Zahlen zu sortieren ist leider nicht so einfach. Wenn wir die Sortiermethode direkt auf ein Zahlenarray anwenden, sehen wir ein unerwartetes Ergebnis:

const numbers = [3, 23, 12]; numbers.sort(); // --> 12, 23, 3

Warum die sort () -Methode für Zahlen nicht funktioniert

Eigentlich funktioniert es, aber dieses Problem tritt auf, weil JavaScript Zahlen alphabetisch sortiert. Lassen Sie mich dies im Detail erklären.

Denken wir an A = 1, B = 2 und C = 3.

const myArray = ['C', 'BC', 'AB']; myArray.sort(); // [AB, BC, C]

Wenn wir beispielsweise drei Zeichenfolgen als C (3), BC (23) und AB (12) haben, sortiert JavaScript diese als AB, BC und C in aufsteigender Reihenfolge, die alphabetisch korrekt ist.

JavaScript sortiert die Zahlen jedoch (wieder alphabetisch) nach 12, 23 und 3, was falsch ist.

Lösung: Die Vergleichsfunktion

Glücklicherweise können wir die sort () -Methode mit einer grundlegenden Vergleichsfunktion unterstützen, die den Trick macht:

function(a, b) {return a - b}

Glücklicherweise kann die Sortiermethode negative, null und positive Werte in der richtigen Reihenfolge sortieren. Wenn die sort () -Methode zwei Werte vergleicht, sendet sie die Werte an unsere Vergleichsfunktion und sortiert die Werte nach dem zurückgegebenen Wert.

  • Wenn das Ergebnis negativ ist, wird a vor b sortiert.
  • Wenn das Ergebnis positiv ist, wird b vor a sortiert.
  • Wenn das Ergebnis 0 ist, ändert sich nichts.

Wir müssen lediglich die Vergleichsfunktion in der sort () -Methode verwenden:

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return a - b}); // --> 3, 12, 23

Wenn wir die Zahlen in absteigender Reihenfolge sortieren möchten, müssen wir diesmal den zweiten Parameter (b) vom ersten (a) subtrahieren:

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return b - a}); // --> 23, 12, 3

Einpacken

Wie wir sehen können, kann das Sortieren der Elemente eines Arrays in JavaScript mit der sort () -Methode problemlos durchgeführt werden, wenn wir wissen, wie man es richtig verwendet. Ich hoffe, mein Beitrag hilft Ihnen zu verstehen, wie Sie die sort () -Methode in JavaScript richtig verwenden.

Wenn Sie mehr über Webentwicklung erfahren möchten, besuchen Sie meinen Youtube-Kanal.

Danke fürs Lesen!