我正在学习如何使用reduce函数,但在acc、val参数上仍有些困惑。我的目标是能够将其他参数传递到reducer函数中,并且相当确定我只是方法不对。
const array = [1,2,3,4,5];
const multiply = (num, multiplier) => num * multiplier;
const multiplier = (acc, val) => acc += multiply(val, 4);
const result = array.reduce(multiplier);
console.log(result);
在这段代码中,我正在使用乘法规约程序对我的数组进行处理,将每个值乘以4。虽然这段代码运行正确且没有问题,但我希望能够传入任何值而不是硬编码的4。我尝试过一些方法,比如:
const multiplier = (acc, val, multiple) => acc += multiply(val, multiple);
const result = array.reduce(multiplier(4)
想要传递一个乘数,但是 "acc, val" 参数让我困扰,因为我不确定具体传入的值是什么。我知道它传递了 1、2、3 等等,但是如何传递额外的参数,比如自定义乘数,而不需要为每个乘数编写不同的乘数函数呢?
multiplier(4)
返回另一个函数,该函数设置factor
值。返回的函数由 reducer 使用。由 reducer 使用的返回函数将是(acc, val) => acc += multiply(val, 4)
,因为您将 4 作为factor
值传递。 - buzatto