Рассмотрим следующий фрагмент кода:
const dogs = [ { breed: "mixed", age: 11, }, { breed: "corgi", age: 9, }];
Теперь предположим, что мы хотим вычислить сумму возрастов всех собак. В этом случае мы можем использовать метод reduction. Этот метод позволяет нам свести весь массив к одному значению, эффективно сжимая массив в одно число. Используя reduce, мы можем получить сумму возрастов всех собак, как показано ниже:
const allDogsAge = dogs.reduce((acc, dog) => acc + dog.age, 0); console.log(allDogsAge) // 20
Он принимает два аргумента: функцию обратного вызова и начальное значение (в данном случае 0). Функция обратного вызова получает два параметра: acc(накопитель) и dog(текущий обрабатываемый элемент). Функция обратного вызова предназначена для накопления суммы возрастов путем добавления значения dog.age к аккумулятору (acc).
Начальное значение аккумулятора установлено равным 0. Итак, во время итерации к аккумулятору добавляется возраст первой собаки (11) (0 + 11 = 11). Затем, когда встречается возраст второй собаки (9), он добавляется к текущему значению аккумулятора (11 + 9 = 20).