Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Uitdaging: Sorteren en Extraheren van Gegevens met sort() | Geavanceerde Arraymethoden en Transformaties
Javascript Datastructuren

bookUitdaging: Sorteren en Extraheren van Gegevens met sort()

Taak

Gegeven een array van boeken, elk weergegeven als een object met eigenschappen (title, author, publicationYear), ontwikkel een oplossing die de volgende taken uitvoert:

  1. Sorteer de array van boeken:
    • Sorteer op titel in oplopende volgorde;
    • Sorteer op auteur in aflopende volgorde;
    • Sorteer op jaar in aflopende volgorde.
  2. Extraheer specifieke eigenschappen in afzonderlijke arrays:
    • Maak een array die alleen de titels van boeken bevat (gesorteerd op titel in oplopende volgorde);
    • Maak een array die alleen de auteurs van boeken bevat (gesorteerd op auteur in aflopende volgorde);
    • Maak een array die alleen de publicatiejaren van boeken bevat (gesorteerd op jaar in aflopende volgorde).

Zorg ervoor dat de originele array van boeken ongewijzigd blijft.

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

Verwachte output:

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. Voor het sorteren op titel, gebruik localeCompare() met de title-eigenschap.
  2. Voor het sorteren op auteur, pas localeCompare() toe met de author-eigenschap.
  3. Voor het sorteren op jaar, gebruik een numerieke vergelijking op basis van de publicationYear-eigenschap.
  4. Gebruik de map()-methode om nieuwe arrays te maken met specifieke eigenschappen.
  5. Maak een callbackfunctie voor map() die de gewenste eigenschap voor elk boek retourneert.
  6. Voor het extraheren van titels, auteurs en jaren moeten de callbackfuncties respectievelijk de title-, author- en publicationYear-eigenschappen retourneren.
  7. Zorg ervoor dat de originele array van boeken ongewijzigd blijft. Gebruik de spread-syntax ([...books]) om een kopie te maken voor sorteren en extraheren.
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

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 8

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 2.27

bookUitdaging: Sorteren en Extraheren van Gegevens met sort()

Veeg om het menu te tonen

Taak

Gegeven een array van boeken, elk weergegeven als een object met eigenschappen (title, author, publicationYear), ontwikkel een oplossing die de volgende taken uitvoert:

  1. Sorteer de array van boeken:
    • Sorteer op titel in oplopende volgorde;
    • Sorteer op auteur in aflopende volgorde;
    • Sorteer op jaar in aflopende volgorde.
  2. Extraheer specifieke eigenschappen in afzonderlijke arrays:
    • Maak een array die alleen de titels van boeken bevat (gesorteerd op titel in oplopende volgorde);
    • Maak een array die alleen de auteurs van boeken bevat (gesorteerd op auteur in aflopende volgorde);
    • Maak een array die alleen de publicatiejaren van boeken bevat (gesorteerd op jaar in aflopende volgorde).

Zorg ervoor dat de originele array van boeken ongewijzigd blijft.

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

Verwachte output:

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. Voor het sorteren op titel, gebruik localeCompare() met de title-eigenschap.
  2. Voor het sorteren op auteur, pas localeCompare() toe met de author-eigenschap.
  3. Voor het sorteren op jaar, gebruik een numerieke vergelijking op basis van de publicationYear-eigenschap.
  4. Gebruik de map()-methode om nieuwe arrays te maken met specifieke eigenschappen.
  5. Maak een callbackfunctie voor map() die de gewenste eigenschap voor elk boek retourneert.
  6. Voor het extraheren van titels, auteurs en jaren moeten de callbackfuncties respectievelijk de title-, author- en publicationYear-eigenschappen retourneren.
  7. Zorg ervoor dat de originele array van boeken ongewijzigd blijft. Gebruik de spread-syntax ([...books]) om een kopie te maken voor sorteren en extraheren.
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

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 8
some-alt