Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Sortera och Extrahera Data med sort() | Avancerade Arraymetoder och Transformationer
Javascript Datastrukturer

bookUtmaning: 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:

  1. Sortera arrayen av böcker:
    • Sortera efter titel i stigande ordning;
    • Sortera efter författare i fallande ordning;
    • Sortera efter år i fallande ordning.
  2. 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.

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

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
  1. För sortering efter titel, använd localeCompare() med egenskapen title.
  2. För sortering efter författare, tillämpa localeCompare() med egenskapen author.
  3. För sortering efter år, använd en numerisk jämförelse baserad på egenskapen publicationYear.
  4. Använd metoden map() för att skapa nya arrayer med specifika egenskaper.
  5. Skapa en callback-funktion för map() som returnerar önskad egenskap för varje bok.
  6. För att extrahera titlar, författare och år ska callback-funktionerna returnera egenskaperna titleauthor och publicationYear respektive.
  7. 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.
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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 8

Fråga AI

expand

Fråga AI

ChatGPT

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

bookUtmaning: 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:

  1. Sortera arrayen av böcker:
    • Sortera efter titel i stigande ordning;
    • Sortera efter författare i fallande ordning;
    • Sortera efter år i fallande ordning.
  2. 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.

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

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
  1. För sortering efter titel, använd localeCompare() med egenskapen title.
  2. För sortering efter författare, tillämpa localeCompare() med egenskapen author.
  3. För sortering efter år, använd en numerisk jämförelse baserad på egenskapen publicationYear.
  4. Använd metoden map() för att skapa nya arrayer med specifika egenskaper.
  5. Skapa en callback-funktion för map() som returnerar önskad egenskap för varje bok.
  6. För att extrahera titlar, författare och år ska callback-funktionerna returnera egenskaperna titleauthor och publicationYear respektive.
  7. 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.
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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 8
some-alt