Я думаю, что у вас есть проблемы с тем, как он выполняется
Your Example:
const array1 = [1, 2, 3, 4];
const reducer = (previous, current) => previous + current;
// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));`enter code here`
// expected output: 15
Как вы говорите, почему он не уменьшается при первом применении .reduce.
так, когдаВы применяете .reduce, это не изменяет исходный массив, но возвращает вновь созданный массив. Так что редуктор применяется к вновь созданному массиву, а не к исходному массиву (array1)
Таким образом, вы можете проверить вывод с помощью следующего кода, он может очиститьВаше сомнение:
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) =>
{
console.log("Data is"+accumulator +' '+ currentValue);
return accumulator + currentValue;
}
// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15
где аккумулятор - это значение, которое он возвращает из функции редуктора.currentValue - текущее значение вашего массива.