gpt4 book ai didi

javascript - 具有多变量函数的 Lodash Map

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:41 25 4
gpt4 key购买 nike

是否可以使用 lodash 遍历集合并将项目传递给需要两个(或更多)参数的函数?在下面的示例中,该函数应采用两个值并将它们相加。该 map 应采用一个数组并向每个数组添加 10。以下是我认为这是如何工作的:

function x (a, b) {
return a + b
}

var nums = [1, 2, 3]
console.log(_.map(nums,x(10)))
--->ans should be [11, 12, 13]
--->actually is [ undefined, undefined, undefined ]

最佳答案

您实际上在这里尝试做的是“ curry ”x 函数,lodash 通过 curry() 支持该函数.柯里化(Currying)函数是一次可以接受一个参数的函数:如果您不提供完整的参数集,它会返回一个需要其余参数的函数。

这就是柯里化(Currying)的样子:

function x(a,b) {
return a + b;
}
x = _.curry(x); //returns a curried version of x

x(3,5); //returns 8, same as the un-curried version

add10 = x(10);
add10(3); //returns 13

因此您的原始代码非常接近柯里化(Currying)版本:

console.log(_.map([1,2,3], _.curry(x)(10))); //Prints [11,12,13]

(正如在对该问题的评论中所指出的;Function.prototype.bind 也可用于柯里化(Currying),但如果您已经在使用 lodash,您不妨使用一些特定的东西到任务)

关于javascript - 具有多变量函数的 Lodash Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30287906/

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