gpt4 book ai didi

javascript - 在 JavaScript 中实现 Sum 函数

转载 作者:行者123 更新时间:2023-12-03 00:00:10 26 4
gpt4 key购买 nike

我试图解决一个需要“n”个参数然后计算总和的难题。

function add(arg1) {
let total=arg1;
const func = function(...args){
if(!args[0]) return total;
total += args[0];
return func;
}

return func;
}

console.log(add(1)(2)(3)()); // => Should output 6

问题:使用与上面示例相同的逻辑,我尝试这样做:

What if I want to do something like

sum(1)(2)(3) => should give 6

If i do sum(1) => Should output 1

sum(1)(2) => should output 3 and so forth.

这是我尝试过的:

function sum2(num) {
let total = num;

const fn = function(...args) {
if(args[0]) total += args[0];
return total;
}

return fn();
}

console.log(sum2(1)) //=> Works
console.log(sum2(1)(2))// => Fails

最佳答案

说明:

Proxy :Proxy 对象用于定义基本操作的自定义行为。在 javascript 中,您几乎可以为每个操作创建陷阱

  • 使用处理程序的 Getter 函数返回 Sum
  • 使用处理程序的Apply函数来迭代和执行加法。

function sum2(n) {
sum = n;
const adhoc = new Proxy(function a () {}, {
get (obj, key) {
return () => sum;
},
apply (receiver, ...args) {
sum += args[1][0];
return adhoc;
},
});
return adhoc
}
console.log(sum2(1));
console.log(sum2(1)(2));
console.log(sum2(1)(2)(3));

关于javascript - 在 JavaScript 中实现 Sum 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55213312/

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