Введение
Как следует из названия, мы собираемся обсудить один из наиболее широко используемых методов работы с массивами: reduce.
Само слово reduce описывает, что он уменьшает входное значение до одного выходного значения. Давайте посмотрим, как это работает!
- Он выполняет итерацию над каждым элементом массива слева направо.
-
Он принимает функцию обратного вызова, которая имеет следующие параметры accumulator, currentvalue, index, array и необязательное начальное значение. (хотя оно необязательно, но лучше его использовать).
-
Синтаксис
reduce(function(accumulator, currentValue, index, array) {
/* function-body */
}, initialValue)
аккумулятор (a) — это возвращаемое значение в последней итерации или начальное значение
currentvalue (c) — это значение текущего элемента в текущей итерации
индекс — индекс текущей итерации
array — входной массив, к которому мы применяем функцию reduce
initialValue — начальное значение, которое будет возвращено в аккумулятор в самой первой итерации.
Теперь достаточно теории, давайте рассмотрим пример. В этом примере мы собираемся вычислить сумму всех чисел, заданных в массиве чисел.
let arr = [ 1, 2 ,3,4,5,6,7,8,9,10];
const sum = arr.reduce((accumulator,currentvalue) => accumulator + currentvalue,0);
console.log("Sum : ",sum);
-
В приведенном выше примере на первой итерации значение аккумулятора равно начальному значению, т.е. 0, а текущее значение равно 1.
-
Таким образом, возвращается 0 плюс 1, в результате чего получается 1, и значение аккумулятора становится равным 1 (так как мы предусмотрели логику сложения).
-
Теперь на следующей итерации значение аккумулятора равно 1, а текущее значение равно 2, поэтому следующее значение аккумулятора приводит к их сложению как 3.
-
Так продолжается до последней итерации, после чего значения аккумуляторов возвращаются.
-
Обратите внимание, что внутри тела функции мы можем представить любую логику, которая нам необходима. Кроме того, мы можем задать любое начальное значение.
Некоторые практические примеры использования функции reduce: :
- создание строки из массива символов.
- Найти максимальное значение в заданном массиве чисел
- Найти массив имен для заданного массива сотрудников, возраст которых > 40 лет
- Найти частоту пользователей одного возраста из заданного массива.
Спасибо, что заглянули. Если вы нашли эту статью полезной, поделитесь ею. Вы можете связаться со мной здесь: linkedin