Uitdaging: 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:
- Sorteer de array van boeken:
- Sorteer op titel in oplopende volgorde;
- Sorteer op auteur in aflopende volgorde;
- Sorteer op jaar in aflopende volgorde.
- 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.
123456789101112131415161718192021222324252627282930313233343536const 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);
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
- Voor het sorteren op titel, gebruik
localeCompare()met detitle-eigenschap. - Voor het sorteren op auteur, pas
localeCompare()toe met deauthor-eigenschap. - Voor het sorteren op jaar, gebruik een numerieke vergelijking op basis van de
publicationYear-eigenschap. - Gebruik de
map()-methode om nieuwe arrays te maken met specifieke eigenschappen. - Maak een callbackfunctie voor
map()die de gewenste eigenschap voor elk boek retourneert. - Voor het extraheren van titels, auteurs en jaren moeten de callbackfuncties respectievelijk de
title-,author- enpublicationYear-eigenschappen retourneren. - Zorg ervoor dat de originele array van boeken ongewijzigd blijft. Gebruik de spread-syntax (
[...books]) om een kopie te maken voor sorteren en extraheren.
123456789101112131415161718192021222324252627282930313233343536const 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);
Was alles duidelijk?
Bedankt voor je feedback!
Sectie 5. Hoofdstuk 8
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 2.27
Uitdaging: 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:
- Sorteer de array van boeken:
- Sorteer op titel in oplopende volgorde;
- Sorteer op auteur in aflopende volgorde;
- Sorteer op jaar in aflopende volgorde.
- 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.
123456789101112131415161718192021222324252627282930313233343536const 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);
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
- Voor het sorteren op titel, gebruik
localeCompare()met detitle-eigenschap. - Voor het sorteren op auteur, pas
localeCompare()toe met deauthor-eigenschap. - Voor het sorteren op jaar, gebruik een numerieke vergelijking op basis van de
publicationYear-eigenschap. - Gebruik de
map()-methode om nieuwe arrays te maken met specifieke eigenschappen. - Maak een callbackfunctie voor
map()die de gewenste eigenschap voor elk boek retourneert. - Voor het extraheren van titels, auteurs en jaren moeten de callbackfuncties respectievelijk de
title-,author- enpublicationYear-eigenschappen retourneren. - Zorg ervoor dat de originele array van boeken ongewijzigd blijft. Gebruik de spread-syntax (
[...books]) om een kopie te maken voor sorteren en extraheren.
123456789101112131415161718192021222324252627282930313233343536const 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);
Was alles duidelijk?
Bedankt voor je feedback!
Sectie 5. Hoofdstuk 8