Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Sortieren von Arrays mit der Sort()-Methode | Fortgeschrittene Array-Methoden und -Transformationen
Javascript Datenstrukturen

bookSortieren von Arrays mit der Sort()-Methode

sort()

Die Methode sort() ordnet die Elemente eines Arrays direkt und gibt das aktualisierte Array zurück. Standardmäßig funktioniert das Sortieren gut für Zeichenfolgen, kann jedoch bei Zahlen unerwartetes Verhalten zeigen.

Standardmäßiges Sortierverhalten

Die Standardsortierung verläuft reibungslos bei Arrays aus Zeichenfolgen, kann jedoch bei numerischen Arrays zu Problemen führen. Im Folgenden werden Beispiele vorgestellt, um dieses Verhalten zu verdeutlichen:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

In diesem Beispiel wird das Zahlenarray in aufsteigender Reihenfolge sortiert, was zunächst unkompliziert erscheint. Allerdings treten im folgenden Beispiel einige Besonderheiten auf:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

Die Methode sort() behandelt Elemente standardmäßig als Zeichenketten, was zu unerwarteten Ergebnissen führen kann. Beispielsweise wird 19 vor 2 und 25 vor 3 sortiert. Die Lösung besteht darin, den Sortiervorgang anzupassen.

Benutzerdefinierte Sortierreihenfolgen

Um das Sortieren an spezifische Anforderungen anzupassen, wird eine Callback-Funktion verwendet. Diese Funktion, oft als Vergleichsfunktion bezeichnet, bestimmt die Sortierlogik. Im Folgenden werden benutzerdefinierte Sortierungen für Zahlen und Zeichenketten betrachtet. Grundlegende Syntax:

array.sort((a, b) => {
  // Callback body
});
  • a wird als erstes Element betrachtet;
  • b wird als zweites Element betrachtet.

Zahlen sortieren

In diesem Beispiel bestimmt die Vergleichsfunktion die aufsteigende und absteigende Reihenfolge basierend auf der Beziehung zwischen den Elementen a und b.

1234567
const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
copy

Zeichenfolgen sortieren

Die Methode localeCompare() ermöglicht eine alphabetische Sortierung und bietet Anpassungsmöglichkeiten für sowohl aufsteigende als auch absteigende Reihenfolgen.

1234567
const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
copy

1. Was ist ein zentrales Merkmal der Methode sort()?

2. Wie behandelt die sort()-Methode Elemente bei der Standardsortierung?

3. Was ist die Ausgabe im folgenden Beispiel?

question mark

Was ist ein zentrales Merkmal der Methode sort()?

Select the correct answer

question mark

Wie behandelt die sort()-Methode Elemente bei der Standardsortierung?

Select the correct answer

question mark

Was ist die Ausgabe im folgenden Beispiel?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 7

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain why the default sort method treats numbers as strings?

How does the compare function work in the sort method?

Can you show more examples of custom sorting, like sorting objects?

bookSortieren von Arrays mit der Sort()-Methode

Swipe um das Menü anzuzeigen

sort()

Die Methode sort() ordnet die Elemente eines Arrays direkt und gibt das aktualisierte Array zurück. Standardmäßig funktioniert das Sortieren gut für Zeichenfolgen, kann jedoch bei Zahlen unerwartetes Verhalten zeigen.

Standardmäßiges Sortierverhalten

Die Standardsortierung verläuft reibungslos bei Arrays aus Zeichenfolgen, kann jedoch bei numerischen Arrays zu Problemen führen. Im Folgenden werden Beispiele vorgestellt, um dieses Verhalten zu verdeutlichen:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

In diesem Beispiel wird das Zahlenarray in aufsteigender Reihenfolge sortiert, was zunächst unkompliziert erscheint. Allerdings treten im folgenden Beispiel einige Besonderheiten auf:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

Die Methode sort() behandelt Elemente standardmäßig als Zeichenketten, was zu unerwarteten Ergebnissen führen kann. Beispielsweise wird 19 vor 2 und 25 vor 3 sortiert. Die Lösung besteht darin, den Sortiervorgang anzupassen.

Benutzerdefinierte Sortierreihenfolgen

Um das Sortieren an spezifische Anforderungen anzupassen, wird eine Callback-Funktion verwendet. Diese Funktion, oft als Vergleichsfunktion bezeichnet, bestimmt die Sortierlogik. Im Folgenden werden benutzerdefinierte Sortierungen für Zahlen und Zeichenketten betrachtet. Grundlegende Syntax:

array.sort((a, b) => {
  // Callback body
});
  • a wird als erstes Element betrachtet;
  • b wird als zweites Element betrachtet.

Zahlen sortieren

In diesem Beispiel bestimmt die Vergleichsfunktion die aufsteigende und absteigende Reihenfolge basierend auf der Beziehung zwischen den Elementen a und b.

1234567
const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
copy

Zeichenfolgen sortieren

Die Methode localeCompare() ermöglicht eine alphabetische Sortierung und bietet Anpassungsmöglichkeiten für sowohl aufsteigende als auch absteigende Reihenfolgen.

1234567
const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
copy

1. Was ist ein zentrales Merkmal der Methode sort()?

2. Wie behandelt die sort()-Methode Elemente bei der Standardsortierung?

3. Was ist die Ausgabe im folgenden Beispiel?

question mark

Was ist ein zentrales Merkmal der Methode sort()?

Select the correct answer

question mark

Wie behandelt die sort()-Methode Elemente bei der Standardsortierung?

Select the correct answer

question mark

Was ist die Ausgabe im folgenden Beispiel?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 7
some-alt