gpt4 book ai didi

javascript - 函数返回函数javascript

转载 作者:搜寻专家 更新时间:2023-11-01 05:19:53 25 4
gpt4 key购买 nike

我有一个简单的演示:

function add(a) {
return function (b) {
return a + b
}
}

现在,当我调用 add(1)(2) 时,它会给我 3

但我想要这样的东西:

添加(1)(2)(3) -> 6

添加(1)(2)(3)(4) -> 10

这意味着我可以根据需要添加更多功能。怎么写?

最佳答案

我在别处看到过类似的问题,但那里的要求略有不同。不是让 add(1)(2)(3) 返回 6,而是要求让 add(1)(2)(3)() 返回 6。

请注意,函数的最后一次调用没有任何参数。这是一个重要的区别,因为该函数应该返回另一个将数字作为参数的函数,或者它应该返回到目前为止传递的参数总数。如果没有最后一个参数未定义(或 NaN)的区别,则无法决定是返回柯里化(Currying)函数还是到目前为止的总数。


所以我假设您想要的是让 add(1)(2)(3)() 返回 6。您可以这样做:

  • 如前所述,如果当前参数是数字,add 函数要么返回另一个接受参数的函数。

  • 如果当前参数未定义(或 NaN),则返回总和。

  • 您使用变量 sum 跟踪总和,该变量可通过闭包用于 total 函数。

function add(x) {
var sum = x;
return function total(y) {
if (!isNaN(y)) {
sum += y;
return total;
} else {
return sum;
}
}
}

console.log(add(5)(2)());
console.log(add(5)(3)());
console.log(add(1)(2)(3)(4)());

关于javascript - 函数返回函数javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504609/

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