Kursinhalt
JavaScript-Datenstrukturen
JavaScript-Datenstrukturen
1. Einführung und Voraussetzungen
2. Objektgrundlagen
Verständnis von ObjectsObjekterstellungVerschachtelte EigenschaftenHerausforderung: Ein Objekt ErstellenZugriff auf ObjekteigenschaftenHerausforderung: Zugriff auf ObjekteigenschaftenArbeiten mit PropertiesHerausforderung: Objekt Modifizieren und ErweiternObjektmethodenEigenschaften in MethodenHerausforderung: Arbeiten mit Objekt-MethodenObjektgrundlagen Zusammenfassen
3. Fortgeschrittene Objektmanipulation
Objektiteration mit for...in-SchleifeHerausforderung: Objekt Property ExplorerMethode hasOwnProperty()Herausforderung: hasOwnProperty() für die Iteration von ObjekteigenschaftenSpread-OperatorHerausforderung: Objekte Zusammenführen und Eigenschaften HinzufügenObjektdestrukturierungHerausforderung: DestructuringZusammenfassung der Fortgeschrittenen Objektmanipulation
5. Fortgeschrittene Array-Operationen
Map() MethodeHerausforderung: Array-Element-TransformationFilter() MethodeHerausforderung: Filtern von Students Nach PrüfungsergebnissenFind() MethodeHerausforderung: Entdecken von Vorgestellten ProduktenSort()-MethodeHerausforderung: Sortieren und Extrahieren von PropertiesZusammenfassung der Fortgeschrittenen Array-OperationenKurszusammenfassung
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:
- 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);
War alles klar?
Danke für Ihr Feedback!
Abschnitt 5. Kapitel 8