Sortieren 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:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
In diesem Beispiel wird das Zahlenarray in aufsteigender Reihenfolge sortiert, was zunächst unkompliziert erscheint. Allerdings treten im folgenden Beispiel einige Besonderheiten auf:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
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
});
awird als erstes Element betrachtet;bwird 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.
1234567const 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
Zeichenfolgen sortieren
Die Methode localeCompare() ermöglicht eine alphabetische Sortierung und bietet Anpassungsmöglichkeiten für sowohl aufsteigende als auch absteigende Reihenfolgen.
1234567const 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
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?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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?
Großartig!
Completion Rate verbessert auf 2.27
Sortieren 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:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
In diesem Beispiel wird das Zahlenarray in aufsteigender Reihenfolge sortiert, was zunächst unkompliziert erscheint. Allerdings treten im folgenden Beispiel einige Besonderheiten auf:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
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
});
awird als erstes Element betrachtet;bwird 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.
1234567const 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
Zeichenfolgen sortieren
Die Methode localeCompare() ermöglicht eine alphabetische Sortierung und bietet Anpassungsmöglichkeiten für sowohl aufsteigende als auch absteigende Reihenfolgen.
1234567const 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
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?
Danke für Ihr Feedback!