</> Praktum

Главная / JavaScript / Метод Array.reduce()

JavaScript · массивы

Метод Array.reduce()

reduce() проходит по массиву и собирает один итог: число, объект, строку или новую коллекцию. Главные части метода — аккумулятор и начальное значение.

Сумма чисел

На каждом шаге callback возвращает новое значение аккумулятора. Второй аргумент после функции задаёт его начальное состояние.

const prices = [120, 80, 250];
const total = prices.reduce((sum, price) => sum + price, 0);

Группировка объектов

Аккумулятором может быть объект. В примере товары собираются по категориям; на каждом шаге возвращается тот же объект после обновления.

const grouped = products.reduce((result, product) => {
  const key = product.category;
  result[key] ??= [];
  result[key].push(product);
  return result;
}, {});

Когда выбрать другой метод

Для простого преобразования понятнее map, для отбора — filter, для проверки — some или every. reduce полезен, когда задача действительно заключается в накоплении результата.

Частые ошибки

Практика

Посчитай общую длительность массива уроков, затем собери объект, где ключ — уровень курса, а значение — количество уроков этого уровня.

Связанные темы

map() · filter() · some()

Ещё в разделе JavaScript