Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Lajittele ja Pura Dataa Sort()-Metodilla | JavaScript-Olioiden Perusteet
Javascriptin tietorakenteet

bookHaaste: Lajittele ja Pura Dataa Sort()-Metodilla

Pyyhkäise näyttääksesi valikon

Tehtävä

Annettuna on taulukko kirjoja, joista jokainen on olio, jolla on ominaisuudet (title, author, publicationYear). Laadi ratkaisu, joka suorittaa seuraavat tehtävät:

  1. Järjestä kirjojen taulukko:
    • Järjestä otsikon mukaan nousevaan järjestykseen;
    • Järjestä kirjoittajan mukaan laskevaan järjestykseen;
    • Järjestä vuoden mukaan laskevaan järjestykseen.
  2. Erottele tietyt ominaisuudet omiin taulukoihin:
    • Luo taulukko, joka sisältää vain kirjojen otsikot (järjestetty otsikon mukaan nousevaan järjestykseen);
    • Luo taulukko, joka sisältää vain kirjoittajat (järjestetty kirjoittajan mukaan laskevaan järjestykseen);
    • Luo taulukko, joka sisältää vain julkaisuvuodet (järjestetty vuoden mukaan laskevaan järjestykseen).

Varmista, että alkuperäinen kirjojen taulukko säilyy muuttumattomana.

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

Odotettu tuloste:

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. Otsikon mukaiseen lajitteluun käytä localeCompare()-metodia title-ominaisuuden kanssa.
  2. Kirjoittajan mukaiseen lajitteluun käytä localeCompare()-metodia author-ominaisuuden kanssa.
  3. Vuoden mukaiseen lajitteluun käytä numeerista vertailua publicationYear-ominaisuuden perusteella.
  4. Käytä map()-metodia luodaksesi uusia taulukoita tietyillä ominaisuuksilla.
  5. Luo palautefunktio map()-metodille, joka palauttaa halutun ominaisuuden jokaiselle kirjalle.
  6. Otsikoiden, kirjoittajien ja vuosien poimimiseen palautefunktioiden tulee palauttaa vastaavasti title, author ja publicationYear -ominaisuudet.
  7. Varmista, että alkuperäinen kirjojen taulukko säilyy muuttumattomana. Käytä spread-syntaksia ([...books]) kopion luomiseen lajittelua ja poimintaa varten.
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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 38

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 38
some-alt