Menu
Coddy logo textTech

Die Sort-Methode

Teil des Abschnitts Logik & Ablauf der JavaScript-Journey von Coddy — Lektion 57 von 65.

Die Methode sort() ermöglicht es Ihnen, die Elemente eines Arrays an Ort und Stelle zu sortieren und gibt das sortierte Array zurück. Standardmäßig sortiert sie Elemente als Zeichenfolgen in alphabetischer und aufsteigender Reihenfolge.

Hier ist die grundlegende Syntax:

array.sort([compareFunction])

Beispiel ohne Verwendung der Vergleichsfunktion:

const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits);
// ['apple', 'banana', 'mango', 'orange']

WARNUNG: Zahlen werden ohne Vergleichsfunktion nicht wie erwartet sortiert:

const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers);
// [1, 100000, 21, 30, 4] (inkorrekte numerische Sortierung)

Um Zahlen korrekt zu sortieren oder eine benutzerdefinierte Sortierung zu implementieren, müssen Sie eine Vergleichsfunktion verwenden.

Die Vergleichsfunktion sollte Folgendes zurückgeben:

  • Einen negativen Wert, wenn a vor b stehen sollte
  • Einen positiven Wert, wenn b vor a stehen sollte
  • Null, wenn sie gleich sind

So sortieren Sie Zahlen mit einer Vergleichsfunktion:

// Aufsteigende Reihenfolge
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]
// Absteigende Reihenfolge
numbers.sort((a, b) => b - a);
console.log(numbers); // [100000, 30, 21, 4, 1]

Ein weiteres Beispiel dafür, wie man Objekte sortiert:

const people = [
    { name: 'John', age: 30 },
    { name: 'Alice', age: 25 },
    { name: 'Bob', age: 35 }
];

// Nach Alter sortieren (aufsteigend)
people.sort((a, b) => a.age - b.age);
// Nach Name sortieren (alphabetisch localeCompare() verwenden)
people.sort((a, b) => a.name.localeCompare(b.name));
challenge icon

Aufgabe

Einfach

Erstellen Sie eine Funktion namens sortByLength, die ein Array von Strings entgegennimmt und ein neues Array zurückgibt, in dem dieselben Strings nach ihrer Länge in aufsteigender Reihenfolge sortiert sind. Wenn zwei Strings die gleiche Länge haben, sollten sie alphabetisch sortiert werden.

Spickzettel

Die Methode sort() sortiert Array-Elemente an Ort und Stelle und gibt das sortierte Array zurück. Standardmäßig sortiert sie Elemente als Zeichenfolgen in alphabetischer Reihenfolge.

Grundlegende Syntax:

array.sort([compareFunction])

Sortieren von Zeichenfolgen:

const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits); // ['apple', 'banana', 'mango', 'orange']

Warnung: Zahlen werden ohne eine Vergleichsfunktion nicht korrekt sortiert:

const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers); // [1, 100000, 21, 30, 4] (incorrect)

Die Vergleichsfunktion gibt Folgendes zurück:

  • Negativer Wert, wenn a vor b stehen sollte
  • Positiver Wert, wenn b vor a stehen sollte
  • Null, wenn sie gleich sind

Zahlen korrekt sortieren:

// Aufsteigende Reihenfolge
numbers.sort((a, b) => a - b);

// Absteigende Reihenfolge
numbers.sort((a, b) => b - a);

Objekte sortieren:

const people = [
    { name: 'John', age: 30 },
    { name: 'Alice', age: 25 },
    { name: 'Bob', age: 35 }
];

// Nach Alter sortieren
people.sort((a, b) => a.age - b.age);

// Alphabetisch nach Namen sortieren
people.sort((a, b) => a.name.localeCompare(b.name));

Probier es selbst

function sortByLength(arr) {
    return arr.sort((a, b) => {
        // Code hier schreiben
    })
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf