gpt4 book ai didi

javascript - 将参数传递给 reducer 函数

转载 作者:行者123 更新时间:2023-12-04 03:39:59 27 4
gpt4 key购买 nike

我正在学习如何使用 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 等等,但是如何传递一个额外的参数,例如自定义乘数,而不是为每个倍数都需要一个不同的乘数函数?

最佳答案

将其作为一个柯里化(Currying)函数来实现,它将按预期工作:

const multiplier = factor => (acc, val) => acc += multiply(val, factor);
const result = array.reduce(multiplier(4));

这样,当您调用 multiplier(4) 时,它将返回一个根据所需的 factor 定制的函数,您可以像预期的那样在 reducer 中使用它。

关于javascript - 将参数传递给 reducer 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66203059/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com