gpt4 book ai didi

javascript - 如何编写这个 JavaScript 函数以便它被多次调用,这个函数叫什么概念?

转载 作者:行者123 更新时间:2023-11-30 16:02:37 24 4
gpt4 key购买 nike

所以我正在处理一个编码套路,它要求我编写一个函数:接受任意数量的参数并返回给定的每个参数的乘积。

kata 答案说你可以这样打电话:

MultiplyNums(1, 3)(2)

我是这样写的(这当然不适用于上述情况):

function MultiplyNums() {
var prod = 0;
for (var i = 0; i < arguments.length; i++) {
prod = prod * arguments[i];
}
return prod;
}

我该如何编写函数才能执行此操作?这个概念叫什么(如果它有名称)?它“看起来”像立即函数调用,尽管我知道它指的是其他东西。

此外,如果我想进行两种类型的调用怎么办:

MultiplyNums(1, 3)(2) //one type of call

MultiplyNums(1, 5) //another type of call

最佳答案

这个概念叫做柯里化(Currying),你差一点就掌握了!

prod 应该初始化为 1,这样您就不会乘以 0,它应该返回一个函数。

function MultiplyNums() {
var prod = 1;
for (var i = 0; i < arguments.length; i++)
prod *= arguments[i];
return function(num) {
return prod * num;
};
}

console.log(MultiplyNums(3, 1)(2));

关于javascript - 如何编写这个 JavaScript 函数以便它被多次调用,这个函数叫什么概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37495094/

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