Kursinhalt
JavaScript-Datenstrukturen
JavaScript-Datenstrukturen
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:
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.
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.
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);
Erwartete Ausgabe:
python
Zum Sortieren nach Titel verwenden Sie
localeCompare()
mit der Eigenschafttitle
.Zum Sortieren nach Autor wenden Sie
localeCompare()
mit der Eigenschaftauthor
an.Zum Sortieren nach Jahr verwenden Sie einen numerischen Vergleich basierend auf der Eigenschaft
publicationYear
.Verwenden Sie die Methode
map()
, um neue Arrays mit bestimmten Eigenschaften zu erstellen.Erstellen Sie eine Callback-Funktion für
map()
, die die gewünschte Eigenschaft für jedes Buch zurückgibt.Zum Extrahieren von Titeln, Autoren und Jahren sollten die Callback-Funktionen die Eigenschaften
title
,author
undpublicationYear
zurückgeben.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.
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);
Danke für Ihr Feedback!