Метод JavaScript reduce

Mar 3, 2018
arr.reduce(callback[, initialValue])

Метод reduce() применяет функцию к каждому значению массива (слева-направо), сводя его к одному значению.

Callback принимает 4 аргумента:

  • accumulator
    Аккумулятор, аккумулирующий значение, которое возвращает функция callback после посещения очередного элемента, либо значение initialValue, если оно предоставлено (смотрите пояснения ниже).
  • currentValue
    Текущий обрабатываемый элемент массива.
  • index
    Индекс текущего обрабатываемого элемента массива.
  • array
    Массив, для которого была вызвана функция reduce.

initialValue
Необязательный параметр. Объект, используемый в качестве первого аргумента при первом вызове функции callback. В нашем случае это 0.

Пример использования

let products = [
    { name: "Майка", price: 5, stock: 10 },
    { name: "Обувь", price: 9, stock: 1 },
    { name: "Мяч", price: 10, stock: 0 },
    { name: "Жвачка", price: 100, stock: 20 }
];
let totalValue = products
    .filter(item => item.stock > 0)
    .reduce((prev, item) => {
        return prev + (item.price * item.stock)
    }, 0);

console.log("Суммарно: $" + totalValue.toFixed(2)); // 2059
Добавить комментарий