Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Daten mit sort() Sortieren und Extrahieren | Fortgeschrittene Array-Methoden und -Transformationen
Javascript Datenstrukturen

bookHerausforderung: Daten mit sort() Sortieren und Extrahieren

Aufgabe

Gegeben ist ein Array von Büchern, wobei jedes Buch durch ein Objekt mit den Eigenschaften (title, author, publicationYear) dargestellt wird. Entwickeln Sie eine Lösung, die folgende Aufgaben erfüllt:

  1. Sortieren Sie das Array der Bücher:
    • Nach Titel in aufsteigender Reihenfolge sortieren;
    • Nach Autor in absteigender Reihenfolge sortieren;
    • Nach Erscheinungsjahr in absteigender Reihenfolge sortieren.
  2. Extrahieren Sie bestimmte 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 Erscheinungsjahre 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:

Sorted by Title (Ascending): Noughts & Crosses, Priestdaddy, The Cost of Living
Sorted by Author (Descending): Patricia Lockwood, Malorie Blackman, Deborah Levy
Sorted by Year (Descending): 2018, 2017, 2001
  1. Zum Sortieren nach Titel die Methode localeCompare() mit der Eigenschaft title verwenden.
  2. Zum Sortieren nach Autor die Methode localeCompare() mit der Eigenschaft author anwenden.
  3. Zum Sortieren nach Jahr einen numerischen Vergleich basierend auf der Eigenschaft publicationYear nutzen.
  4. Die Methode map() verwenden, um neue Arrays mit bestimmten Eigenschaften zu erstellen.
  5. Eine Callback-Funktion für map() erstellen, die die gewünschte Eigenschaft für jedes Buch zurückgibt.
  6. Für das Extrahieren von Titeln, Autoren und Jahren sollten die Callback-Funktionen jeweils die Eigenschaften titleauthor und publicationYear zurückgeben.
  7. Sicherstellen, dass das ursprüngliche Array der Bücher unverändert bleibt. Die Spread-Syntax ([...books]) verwenden, 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

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain how the sorting functions work in this solution?

What would the output look like if the books array had more entries?

How can I modify this to sort by a different property, like title length?

Awesome!

Completion rate improved to 2.27

bookHerausforderung: Daten mit sort() Sortieren und Extrahieren

Swipe um das Menü anzuzeigen

Aufgabe

Gegeben ist ein Array von Büchern, wobei jedes Buch durch ein Objekt mit den Eigenschaften (title, author, publicationYear) dargestellt wird. Entwickeln Sie eine Lösung, die folgende Aufgaben erfüllt:

  1. Sortieren Sie das Array der Bücher:
    • Nach Titel in aufsteigender Reihenfolge sortieren;
    • Nach Autor in absteigender Reihenfolge sortieren;
    • Nach Erscheinungsjahr in absteigender Reihenfolge sortieren.
  2. Extrahieren Sie bestimmte 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 Erscheinungsjahre 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:

Sorted by Title (Ascending): Noughts & Crosses, Priestdaddy, The Cost of Living
Sorted by Author (Descending): Patricia Lockwood, Malorie Blackman, Deborah Levy
Sorted by Year (Descending): 2018, 2017, 2001
  1. Zum Sortieren nach Titel die Methode localeCompare() mit der Eigenschaft title verwenden.
  2. Zum Sortieren nach Autor die Methode localeCompare() mit der Eigenschaft author anwenden.
  3. Zum Sortieren nach Jahr einen numerischen Vergleich basierend auf der Eigenschaft publicationYear nutzen.
  4. Die Methode map() verwenden, um neue Arrays mit bestimmten Eigenschaften zu erstellen.
  5. Eine Callback-Funktion für map() erstellen, die die gewünschte Eigenschaft für jedes Buch zurückgibt.
  6. Für das Extrahieren von Titeln, Autoren und Jahren sollten die Callback-Funktionen jeweils die Eigenschaften titleauthor und publicationYear zurückgeben.
  7. Sicherstellen, dass das ursprüngliche Array der Bücher unverändert bleibt. Die Spread-Syntax ([...books]) verwenden, 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
some-alt