Reduce - эффективные способы снижения нагрузок на организм
Reduce (или reduceRight) - это метод, который применяет функцию (callback) к элементам массива, сокращая его до одного значения. В эту функцию передаются два аргумента - аккумулятор и текущий элемент массива. Аккумулятор - это значение, полученное на предыдущей итерации или изначальное значение, переданное как второй аргумент reduce.
Пример использования reduce:
const arr = [1, 2, 3, 4, 5];
const result = arr.reduce((acc, curr) => acc + curr, 0);
console.log(result); // 15
В приведенном выше примере, мы проходим по массиву и суммируем все его элементы, начиная со значения аккумулятора 0. Поэтому результат равен 15.
Кроме суммирования, reduce можно использовать для других математических операций, объединения строк, агрегирования данных, удаления дубликатов и других задач.
Для примера, давайте рассмотрим как находить наименьшее число в массиве с помощью reduce:
const arr = [5, 2, 8, 1, -1];
const min = arr.reduce((acc, curr) => acc < curr ? acc : curr, arr[0]);
console.log(min); // -1
Здесь мы использовали условный оператор для сравнения текущего элемента массива с аккумулятором и возвращаем наименьшее из них.
Также есть метод reduceRight, который работает аналогично, но идет справа налево по массиву:
const arr = [1, 2, 3, 4];
const result = arr.reduceRight((acc, curr) => {
console.log(curr);
return acc + curr;
}, 0);
// выведет
// 4
// 3
// 2
// 1
Здесь мы обходим массив справа налево и выводим каждый элемент перед его суммой со значением аккумулятора.
Таким образом, reduce очень удобен для многих задач, где нужно пройти по массиву и произвести вычисления, объединение или обработку данных.