Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Sorter og Hent ut Data med sort() | Avanserte Array-metoder og Transformasjoner
Javascript Datastrukturer

bookUtfordring: Sorter og Hent ut Data med sort()

Oppgave

Gitt et array med bøker, der hver bok er representert som et objekt med egenskapene (title, author, publicationYear), lag en løsning som utfører følgende oppgaver:

  1. Sorter arrayet med bøker:
    • Sorter etter tittel i stigende rekkefølge;
    • Sorter etter forfatter i synkende rekkefølge;
    • Sorter etter år i synkende rekkefølge.
  2. Ekstraher spesifikke egenskaper til separate arrayer:
    • Lag et array som kun inneholder titlene på bøkene (sortert etter tittel i stigende rekkefølge);
    • Lag et array som kun inneholder forfatterne av bøkene (sortert etter forfatter i synkende rekkefølge);
    • Lag et array som kun inneholder utgivelsesårene til bøkene (sortert etter år i synkende rekkefølge).

Sørg for at det opprinnelige arrayet med bøker forblir uendret.

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

Forventet 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. For sortering etter tittel, bruk localeCompare() med title-egenskapen.
  2. For sortering etter forfatter, bruk localeCompare() med author-egenskapen.
  3. For sortering etter år, bruk en numerisk sammenligning basert på publicationYear-egenskapen.
  4. Bruk map()-metoden for å lage nye matriser med spesifikke egenskaper.
  5. Lag en callback-funksjon for map() som returnerer ønsket egenskap for hver bok.
  6. For å hente ut titler, forfattere og år, skal callback-funksjonene returnere henholdsvis titleauthor og publicationYear-egenskapene.
  7. Sørg for at den opprinnelige listen med bøker forblir uendret. Bruk spread-syntaksen ([...books]) for å lage en kopi til sortering og uthenting.
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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 8

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 2.27

bookUtfordring: Sorter og Hent ut Data med sort()

Sveip for å vise menyen

Oppgave

Gitt et array med bøker, der hver bok er representert som et objekt med egenskapene (title, author, publicationYear), lag en løsning som utfører følgende oppgaver:

  1. Sorter arrayet med bøker:
    • Sorter etter tittel i stigende rekkefølge;
    • Sorter etter forfatter i synkende rekkefølge;
    • Sorter etter år i synkende rekkefølge.
  2. Ekstraher spesifikke egenskaper til separate arrayer:
    • Lag et array som kun inneholder titlene på bøkene (sortert etter tittel i stigende rekkefølge);
    • Lag et array som kun inneholder forfatterne av bøkene (sortert etter forfatter i synkende rekkefølge);
    • Lag et array som kun inneholder utgivelsesårene til bøkene (sortert etter år i synkende rekkefølge).

Sørg for at det opprinnelige arrayet med bøker forblir uendret.

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

Forventet 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. For sortering etter tittel, bruk localeCompare() med title-egenskapen.
  2. For sortering etter forfatter, bruk localeCompare() med author-egenskapen.
  3. For sortering etter år, bruk en numerisk sammenligning basert på publicationYear-egenskapen.
  4. Bruk map()-metoden for å lage nye matriser med spesifikke egenskaper.
  5. Lag en callback-funksjon for map() som returnerer ønsket egenskap for hver bok.
  6. For å hente ut titler, forfattere og år, skal callback-funksjonene returnere henholdsvis titleauthor og publicationYear-egenskapene.
  7. Sørg for at den opprinnelige listen med bøker forblir uendret. Bruk spread-syntaksen ([...books]) for å lage en kopi til sortering og uthenting.
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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 8
some-alt