Udfordring: Sorter og Udtræk Data med sort()
Opgave
Givet et array af bøger, hvor hver bog er repræsenteret som et objekt med egenskaberne (title, author, publicationYear), udarbejd en løsning, der udfører følgende opgaver:
- Sortér arrayet af bøger:
- Sortér efter titel i stigende rækkefølge;
- Sortér efter forfatter i faldende rækkefølge;
- Sortér efter år i faldende rækkefølge.
- Udtræk specifikke egenskaber til separate arrays:
- Opret et array, der kun indeholder titlerne på bøgerne (sorteret efter titel i stigende rækkefølge);
- Opret et array, der kun indeholder forfatternes navne (sorteret efter forfatter i faldende rækkefølge);
- Opret et array, der kun indeholder udgivelsesårene for bøgerne (sorteret efter år i faldende rækkefølge).
Sørg for, at det oprindelige array af bøger forbliver uændret.
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);
Forventet 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
- Til sortering efter titel anvendes
localeCompare()medtitle-egenskaben. - Til sortering efter forfatter anvendes
localeCompare()medauthor-egenskaben. - Til sortering efter år anvendes en numerisk sammenligning baseret på
publicationYear-egenskaben. - Anvend
map()-metoden for at oprette nye arrays med specifikke egenskaber. - Opret en callback-funktion til
map()der returnerer den ønskede egenskab for hver bog. - Ved udtræk af titler, forfattere og år skal callback-funktionerne returnere henholdsvis
title,authorogpublicationYear-egenskaberne. - Sørg for, at det oprindelige array af bøger forbliver uændret. Brug spread-syntaksen (
[...books]) for at oprette en kopi til sortering og udtræk.
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);
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Udfordring: Sorter og Udtræk Data med sort()
Stryg for at vise menuen
Opgave
Givet et array af bøger, hvor hver bog er repræsenteret som et objekt med egenskaberne (title, author, publicationYear), udarbejd en løsning, der udfører følgende opgaver:
- Sortér arrayet af bøger:
- Sortér efter titel i stigende rækkefølge;
- Sortér efter forfatter i faldende rækkefølge;
- Sortér efter år i faldende rækkefølge.
- Udtræk specifikke egenskaber til separate arrays:
- Opret et array, der kun indeholder titlerne på bøgerne (sorteret efter titel i stigende rækkefølge);
- Opret et array, der kun indeholder forfatternes navne (sorteret efter forfatter i faldende rækkefølge);
- Opret et array, der kun indeholder udgivelsesårene for bøgerne (sorteret efter år i faldende rækkefølge).
Sørg for, at det oprindelige array af bøger forbliver uændret.
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);
Forventet 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
- Til sortering efter titel anvendes
localeCompare()medtitle-egenskaben. - Til sortering efter forfatter anvendes
localeCompare()medauthor-egenskaben. - Til sortering efter år anvendes en numerisk sammenligning baseret på
publicationYear-egenskaben. - Anvend
map()-metoden for at oprette nye arrays med specifikke egenskaber. - Opret en callback-funktion til
map()der returnerer den ønskede egenskab for hver bog. - Ved udtræk af titler, forfattere og år skal callback-funktionerne returnere henholdsvis
title,authorogpublicationYear-egenskaberne. - Sørg for, at det oprindelige array af bøger forbliver uændret. Brug spread-syntaksen (
[...books]) for at oprette en kopi til sortering og udtræk.
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);
Tak for dine kommentarer!