Utmaning: Sortera och Extrahera Data med sort()
Uppgift
Givet en array av böcker, där varje bok representeras av ett objekt med egenskaperna (title, author, publicationYear), skapa en lösning som utför följande uppgifter:
- Sortera arrayen av böcker:
- Sortera efter titel i stigande ordning;
- Sortera efter författare i fallande ordning;
- Sortera efter år i fallande ordning.
- Extrahera specifika egenskaper till separata arrayer:
- Skapa en array som endast innehåller böckernas titlar (sorterade efter titel i stigande ordning);
- Skapa en array som endast innehåller böckernas författare (sorterade efter författare i fallande ordning);
- Skapa en array som endast innehåller böckernas utgivningsår (sorterade efter år i fallande ordning).
Säkerställ att den ursprungliga arrayen av böcker förblir oförändrad.
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);
Förväntad utdata:
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
- För sortering efter titel, använd
localeCompare()med egenskapentitle. - För sortering efter författare, tillämpa
localeCompare()med egenskapenauthor. - För sortering efter år, använd en numerisk jämförelse baserad på egenskapen
publicationYear. - Använd metoden
map()för att skapa nya arrayer med specifika egenskaper. - Skapa en callback-funktion för
map()som returnerar önskad egenskap för varje bok. - För att extrahera titlar, författare och år ska callback-funktionerna returnera egenskaperna
title,authorochpublicationYearrespektive. - Säkerställ att den ursprungliga arrayen av böcker förblir oförändrad. Använd spread-syntaxen (
[...books]) för att skapa en kopia för sortering och extrahering.
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);
Var allt tydligt?
Tack för dina kommentarer!
Avsnitt 5. Kapitel 8
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 2.27
Utmaning: Sortera och Extrahera Data med sort()
Svep för att visa menyn
Uppgift
Givet en array av böcker, där varje bok representeras av ett objekt med egenskaperna (title, author, publicationYear), skapa en lösning som utför följande uppgifter:
- Sortera arrayen av böcker:
- Sortera efter titel i stigande ordning;
- Sortera efter författare i fallande ordning;
- Sortera efter år i fallande ordning.
- Extrahera specifika egenskaper till separata arrayer:
- Skapa en array som endast innehåller böckernas titlar (sorterade efter titel i stigande ordning);
- Skapa en array som endast innehåller böckernas författare (sorterade efter författare i fallande ordning);
- Skapa en array som endast innehåller böckernas utgivningsår (sorterade efter år i fallande ordning).
Säkerställ att den ursprungliga arrayen av böcker förblir oförändrad.
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);
Förväntad utdata:
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
- För sortering efter titel, använd
localeCompare()med egenskapentitle. - För sortering efter författare, tillämpa
localeCompare()med egenskapenauthor. - För sortering efter år, använd en numerisk jämförelse baserad på egenskapen
publicationYear. - Använd metoden
map()för att skapa nya arrayer med specifika egenskaper. - Skapa en callback-funktion för
map()som returnerar önskad egenskap för varje bok. - För att extrahera titlar, författare och år ska callback-funktionerna returnera egenskaperna
title,authorochpublicationYearrespektive. - Säkerställ att den ursprungliga arrayen av böcker förblir oförändrad. Använd spread-syntaxen (
[...books]) för att skapa en kopia för sortering och extrahering.
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);
Var allt tydligt?
Tack för dina kommentarer!
Avsnitt 5. Kapitel 8