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 | Edistyneet Taulukkometodit ja Muunnokset
Javascriptin tietorakenteet

bookHaaste: Lajittele ja Pura Dataa Sort()-Metodilla

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 5. Luku 8

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

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

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 5. Luku 8
some-alt