Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Сортування та Витяг Даних за Допомогою sort() | Розширені Методи Масивів та Трансформації
Структури Даних JavaScript

bookЗавдання: Сортування та Витяг Даних за Допомогою sort()

Завдання

Дано масив книг, кожна з яких представлена об'єктом із властивостями (title, author, publicationYear). Створіть рішення, яке виконує наступні дії:

  1. Відсортуйте масив книг:
    • Сортування за назвою у зростаючому порядку;
    • Сортування за автором у спадаючому порядку;
    • Сортування за роком видання у спадаючому порядку.
  2. Витягніть окремі властивості у окремі масиви:
    • Створіть масив, що містить лише назви книг (відсортовані за назвою у зростаючому порядку);
    • Створіть масив, що містить лише авторів книг (відсортовані за автором у спадаючому порядку);
    • Створіть масив, що містить лише роки видання книг (відсортовані за роком у спадаючому порядку).

Переконайтеся, що початковий масив книг залишається незмінним.

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

Очікуваний результат:

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. Для сортування за назвою використовуйте localeCompare() з властивістю title.
  2. Для сортування за автором застосовуйте localeCompare() з властивістю author.
  3. Для сортування за роком використовуйте числове порівняння на основі властивості publicationYear.
  4. Використовуйте метод map() для створення нових масивів із конкретними властивостями.
  5. Створіть функцію зворотного виклику для map(), яка повертає потрібну властивість для кожної книги.
  6. Для отримання назв, авторів і років функції зворотного виклику повинні повертати відповідно властивості titleauthor та publicationYear.
  7. Переконайтеся, що оригінальний масив книг залишається незмінним. Використовуйте синтаксис розгортання ([...books]) для створення копії для сортування та вибірки.
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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 8

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

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

bookЗавдання: Сортування та Витяг Даних за Допомогою sort()

Свайпніть щоб показати меню

Завдання

Дано масив книг, кожна з яких представлена об'єктом із властивостями (title, author, publicationYear). Створіть рішення, яке виконує наступні дії:

  1. Відсортуйте масив книг:
    • Сортування за назвою у зростаючому порядку;
    • Сортування за автором у спадаючому порядку;
    • Сортування за роком видання у спадаючому порядку.
  2. Витягніть окремі властивості у окремі масиви:
    • Створіть масив, що містить лише назви книг (відсортовані за назвою у зростаючому порядку);
    • Створіть масив, що містить лише авторів книг (відсортовані за автором у спадаючому порядку);
    • Створіть масив, що містить лише роки видання книг (відсортовані за роком у спадаючому порядку).

Переконайтеся, що початковий масив книг залишається незмінним.

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

Очікуваний результат:

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. Для сортування за назвою використовуйте localeCompare() з властивістю title.
  2. Для сортування за автором застосовуйте localeCompare() з властивістю author.
  3. Для сортування за роком використовуйте числове порівняння на основі властивості publicationYear.
  4. Використовуйте метод map() для створення нових масивів із конкретними властивостями.
  5. Створіть функцію зворотного виклику для map(), яка повертає потрібну властивість для кожної книги.
  6. Для отримання назв, авторів і років функції зворотного виклику повинні повертати відповідно властивості titleauthor та publicationYear.
  7. Переконайтеся, що оригінальний масив книг залишається незмінним. Використовуйте синтаксис розгортання ([...books]) для створення копії для сортування та вибірки.
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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 8
some-alt