javascript - 以闭包方式在javascript中乘以3个数字
问题描述
function fn() {
// implementation
}
fn(2,3,4); // 24
fn(2,3)(4); // 24
fn(2)(3)(4); // 24
我无法在上面显示的示例中实现乘法。我怎样才能实现它?任何形式的帮助都非常感谢!
解决方案
如果到目前为止提供的参数总数少于 3,则可以有一个函数返回自身并绑定参数:
const multiply = (...args) => (
args.length < 3
? multiply.bind(null, ...args)
: args.reduce((a, b) => a * b)
);
console.log(multiply(2, 3, 4));
console.log(multiply(2, 3)(4));
console.log(multiply(2)(3)(4));
console.log(multiply(2)(3, 4));
推荐阅读
- python - 如何正确连接用python中的循环提取的3个数据帧?
- debugging - 在 VS 代码中调试 C++ 期间无法在外部控制台中输入输入
- authentication - context.HttpContext.Request.Headers["Authorization"] 返回空值
- camera - 一加6T的FOV?
- windows - Windows 终端/Powershell 智能感知
- c++ - 最小堆比较器
- python - 带有 EndUser 模型的任务模型
- unity3d - 为什么矢量和 OnMove 函数采用不同的轴?
- typescript - STRIPE + TypeScript:TypeError:stripe_1.default 不是构造函数
- c++ - 使用鼠标单击和鼠标拖动来环绕立方体(Opengl)