如何在未知数量的参数上计算函数 [英] How to curry a function across an unknown number of parameters
本文介绍了如何在未知数量的参数上计算函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有一个名为的函数multiplyDivide
如果我打电话给 multiplyDivide (2)(3)(4)(6)
它相当于 2 * 3/4 * 6
。
If I were to call multiplyDivide(2)(3)(4)(6)
it would be equivalent to 2 * 3 / 4 * 6
.
更新:
如果我事先不知道将要采用多少参数,是否可以编写这样的函数?例如,我可以有 multiplyDivide(1)(2)
或 multiplyDivide(1)(2)(3)(4)......( n-1)(n)
推荐答案
为什么要进行咖喱计算?通过提供 n
参数来重载函数会不会更容易?
Why does it have to be curried? Wouldn't this be much easier to just "overload" a function by supplying n
arguments?
function multiplyDivide() {
var result = arguments[0];
for (var i = 1; i < arguments.length; i++) {
result = (i % 2) ? (result * arguments[i]) : (result / arguments[i]);
}
return result;
}
console.log(multiplyDivide(2, 3, 4, 6)); //9
console.log(multiplyDivide(5, 4, 2, 3, 3, 5, 1)); //50
这篇关于如何在未知数量的参数上计算函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文