Reduce JS - инструмент для оптимизации JavaScript-кода
Reduce - это метод массива в JavaScript, который применяет функцию-аккумулятор к каждому элементу массива, чтобы свести его к одному значению.
Основной синтаксис reduce:
arr.reduce(callback[, initialValue]);
callback - Функция, которая будет вызываться на каждом элементе массива и принимать четыре параметра:
Accumulator (аккумулятор) - значение, которое вернула предыдущая итерация функции callback.
Current Value (текущее значение) - текущий элемент массива.
Current Index (текущий индекс) - индекс текущего элемента массива.
Source Array (исходный массив) - массив, по которому происходит итерация.
initialValue (необязательно) - начальное значение для аккумулятора. Если он не указан, то первый элемент массива становится начальным значением.
Пример:
const numbers = [1, 2, 3, 4, 5];
const sumNumbers = numbers.reduce((accumulator, currentValue) => accumulator + currentValue);
console.log(sumNumbers); // 15
Здесь метод reduce вызывается на массиве numbers и передается функция-аккумулятор, которая складывает значения. Начальное значение не указано, поэтому первый элемент массива становится начальным значением аккумулятора.
Также можно использовать reduce для более сложных операций. Например, найдем самое длинное слово в массиве:
const words = ['apple', 'banana', 'pear', 'grapefruit'];
const longestWord = words.reduce((accumulator, currentValue) => {
if (currentValue.length > accumulator.length) {
return currentValue;
} else {
return accumulator;
}
}, '');
console.log(longestWord) // 'grapefruit'
Здесь функция-аккумулятор проверяет, является ли текущее значение больше предыдущего (по длине) и возвращает наибольшее значение. Начальное значение аккумулятора - пустая строка.
Метод reduce может быть очень полезным при работе со сложными данными и обработке массивов.