我正在处理Javascript挑战。挑战在于下面的代码,在其中您将提供的数字加在一起:
function addTogether() {
//I left this blank because I'm focused on checking for the second parentheses
}
但是,如果尝试将此addTogether(5)(7)
传递给function addTogether()
,将很难获得第二个括号。
但是,如果您编写此代码,可以同时得到两个括号:
function addTogether() {
//get first parenteses
let first = arguments;
//get second parentheses
let second = function() {
return arguments;
};
}
但是我的问题是,您如何检查是否还有第二个括号?因为我要传递其他数据,例如addTogether(2,3)
。换句话说,我可能会将带有一个括号的另一个传递给带有两个括号的另一个传递给function addTogether()
const addTogether = (a, opt) => opt ? a + opt : b => a + b
console.log("addTogether(1,3) => ", addTogether(1,3))
console.log("addTogether(4)(6) => ", addTogether(4)(6))
function sum(...args) {
const first = args.reduce((sum,x)=>sum+x,0)
const second = function(...args) {return sum(first, ...args)}
second[Symbol.toPrimitive] = function(){return first}
return second
}
console.log(
1+sum(1)(2)+sum(1)+sum(3),
sum(1,1,2) (1,3)(0)(0)+sum(0,-1,1,0),
sum(1)(1)(2)(1)(3)(0)(0)(-1,1)(0)+sum()
)