Menu
Coddy logo textTech

Цепочки методов массивов

Часть раздела Логика и поток путешествия по JavaScript на Coddy — урок 55 из 65.

Цепочки методов массива позволяют выполнять несколько операций над массивом в одной инструкции. Этот подход может сделать ваш код более лаконичным и читаемым.

Вот пример объединения методов массива в цепочку:

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const result = numbers
  .filter(num => num % 2 === 0)
  .map(num => num * 2)
  .reduce((sum, num) => sum + num, 0);

console.log(result); // 60

В этом примере мы начинаем с массива чисел, отфильтровываем нечетные числа, удваиваем каждое оставшееся число и затем суммируем результаты.

Порядок цепочки вызовов имеет значение. Каждый метод в цепочке работает с результатом предыдущего метода.

challenge icon

Задание

Легко

Создайте функцию с названием processFruits, которая принимает массив объектов фруктов. Каждый объект фрукта имеет свойства name (строка) и quantity (число).

Функция должна использовать цепочку методов массива, чтобы:

  1. Отфильтровать фрукты с количеством 0
  2. Преобразовать название каждого фрукта в верхний регистр
  3. Создать строку, в которой перечислены все фрукты с их количеством в формате "APPLE: 5, BANANA: 3"

Небольшое напоминание:

Вы можете использовать функцию .join(", ") для преобразования массива строк в одну единую строку.

Можно добавить в цепочку даже функцию .join():

arr.filter(...)
   .map(...)
   .join(...)

Шпаргалка

Цепочка методов массива позволяет выполнять несколько операций над массивом в одном выражении, делая код более лаконичным и читаемым.

Каждый метод в цепочке работает с результатом предыдущего метода:

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const result = numbers
  .filter(num => num % 2 === 0)
  .map(num => num * 2)
  .reduce((sum, num) => sum + num, 0);

console.log(result); // 60

Вы также можете добавить в цепочку метод .join(), чтобы преобразовать массив в строку:

arr.filter(...)
   .map(...)
   .join(", ")

Попробуйте сами

function processFruits(fruits) {
  // Напишите ваш код здесь
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и поток