javascript - Sum 函数使用递归和多个参数

标签 javascript math recursion

是否有办法创建一个同时适用于递归调用(例如 (1)(2)(3)(4))和多个参数(例如 (1, 2, 3, 4))的求和函数?

像这样:

sum(5, 5) // 10
sum(5)(5) // 10

谢谢。

最佳答案

您可以为下一个参数返回一个函数并实现 toString方法。

function sum() {
    var add = function (a, b) { return a + b; },
        value = Array.prototype.reduce.call(arguments, add, 0);

    function f() { 
        value = Array.prototype.reduce.call(arguments, add, value);
        return f;
    }; 
    f.toString = function () { return value; };
    return f;
}

console.log(sum(5, 5));
console.log(sum(5)(5));
console.log(sum(3, 4, 5)(6, 7));

关于javascript - Sum 函数使用递归和多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45643260/

相关文章:

javascript - angularjs,需要帮助理解 $compile 函数

javascript - Emscripten 可以将 LLVM 编译为基于 Web 的程序语言的 JavaScript

java - 使用while循环格式化的功率表和逻辑错误

javascript - Node.JS 递归函数错误变量

javascript - 我们可以使用正则表达式一次解析多个规则吗?

javascript - AJAX 请求池

python - 解决 `math` 模块中涉及弧度的程序时出现问题

python - 如何在 Python 中得到 10**20 + 10**-20 的精确结果?它给了我 1e+20

algorithm - 查找具有多重因子的集合成员的所有产品

python - 如何将这个迭代函数写成递归函数?