Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Sortieren und Extrahieren von Properties | Fortgeschrittene Array-Operationen
JavaScript-Datenstrukturen
course content

Kursinhalt

JavaScript-Datenstrukturen

JavaScript-Datenstrukturen

1. Einführung und Voraussetzungen
2. Objektgrundlagen
3. Fortgeschrittene Objektmanipulation
4. Mastering Arrays
5. Fortgeschrittene Array-Operationen

book
Herausforderung: Sortieren und Extrahieren von Properties

Aufgabe

Gegeben ist ein Array von Büchern, die jeweils durch ein Objekt mit Eigenschaften (title, author, publicationYear) dargestellt werden. Erstellen Sie eine Lösung, die die folgenden Aufgaben ausführt:

  1. Sortieren Sie das Array von Büchern:
    • Sortieren Sie nach Titel in aufsteigender Reihenfolge;
    • Sortieren Sie nach Autor in absteigender Reihenfolge;
    • Sortieren Sie nach Jahr in absteigender Reihenfolge.
  2. Extrahieren Sie spezifische Eigenschaften in separate Arrays:
    • Erstellen Sie ein Array, das nur die Titel der Bücher enthält (sortiert nach Titel in aufsteigender Reihenfolge);
    • Erstellen Sie ein Array, das nur die Autoren der Bücher enthält (sortiert nach Autor in absteigender Reihenfolge);
    • Erstellen Sie ein Array, das nur die Veröffentlichungsjahre der Bücher enthält (sortiert nach Jahr in absteigender Reihenfolge).

Stellen Sie sicher, dass das ursprüngliche Array der Bücher unverändert bleibt.

123456789101112131415161718192021222324252627282930313233343536
const books = [ { title: "Noughts & Crosses", author: "Malorie Blackman", publicationYear: 2001, }, { title: "Priestdaddy", author: "Patricia Lockwood", publicationYear: 2017, }, { title: "The Cost of Living", author: "Deborah Levy", publicationYear: 2018, }, ]; // Sort by `title` in ascending order const sortedByTitleAscending = ___ .sort((a, b) => a.title.___(b.title)) .___((book) => book.title); // Sort by `author` in descending order const sortedByAuthorDescending = [...books] .___((a, b) => b.___.localeCompare(a.___)) .map((book) => book.author); // Sort by `year` in descending order const sortedByYearDescending = [...books] .sort((a, b) => ___ ___ ___) .___((book) => book.publicationYear); console.log("Sorted by Title (Ascending):", sortedByTitleAscending); console.log("Sorted by Author (Descending):", sortedByAuthorDescending); console.log("Sorted by Year (Descending):", sortedByYearDescending);
copy

Erwartete Ausgabe:

  1. Zum Sortieren nach Titel verwenden Sie localeCompare() mit der Eigenschaft title.
  2. Zum Sortieren nach Autor wenden Sie localeCompare() mit der Eigenschaft author an.
  3. Zum Sortieren nach Jahr verwenden Sie einen numerischen Vergleich basierend auf der Eigenschaft publicationYear.
  4. Verwenden Sie die Methode map(), um neue Arrays mit bestimmten Eigenschaften zu erstellen.
  5. Erstellen Sie eine Callback-Funktion für map(), die die gewünschte Eigenschaft für jedes Buch zurückgibt.
  6. Zum Extrahieren von Titeln, Autoren und Jahren sollten die Callback-Funktionen die Eigenschaften title, author und publicationYear zurückgeben.
  7. Stellen Sie sicher, dass das ursprüngliche Array von Büchern unverändert bleibt. Verwenden Sie die Spread-Syntax ([...books]), um eine Kopie zum Sortieren und Extrahieren zu erstellen.
123456789101112131415161718192021222324252627282930313233343536
const books = [ { title: "Noughts & Crosses", author: "Malorie Blackman", publicationYear: 2001, }, { title: "Priestdaddy", author: "Patricia Lockwood", publicationYear: 2017, }, { title: "The Cost of Living", author: "Deborah Levy", publicationYear: 2018, }, ]; // Sort by `title` in ascending order const sortedByTitleAscending = [...books] .sort((a, b) => a.title.localeCompare(b.title)) .map((book) => book.title); // Sort by `author` in descending order const sortedByAuthorDescending = [...books] .sort((a, b) => b.author.localeCompare(a.author)) .map((book) => book.author); // Sort by `year` in descending order const sortedByYearDescending = [...books] .sort((a, b) => b.publicationYear - a.publicationYear) .map((book) => book.publicationYear); console.log("Sorted by Title (Ascending):", sortedByTitleAscending); console.log("Sorted by Author (Descending):", sortedByAuthorDescending); console.log("Sorted by Year (Descending):", sortedByYearDescending);
copy

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 8
We're sorry to hear that something went wrong. What happened?
some-alt