如何在未知数量的参数上计算函数 [英] How to curry a function across an unknown number of parameters

查看:81
本文介绍了如何在未知数量的参数上计算函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一个名为的函数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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆