Interview icon indicating copy to clipboard operation
Interview copied to clipboard

第6题(2019-07-29):实现一个函数add,满足下列输出结果

Open qappleh opened this issue 6 years ago • 2 comments

add(1); // 1
add(1)(2); // 3
add(1)(2)(3); // 6
add(1)(2,3); // 6
add(1,2)(3); // 6
add(1,2,3); // 6  

qappleh avatar Aug 19 '19 01:08 qappleh

答案:

function add(){
	var args = [...arguments];
	var fn = function(){
	   args.push(...arguments);
	   return fn;
	}
	fn.tostring = function(){
	    return args.reduce((x,y) => x + y)
	}
	return fn;
}
console.log(add(1,2)); // 3
console.log(add(1)(2)); // 3
console.log(add(1)(2)(3)); // 6
console.log(add(1,2,3)(4)); // 10  

qappleh avatar Aug 19 '19 01:08 qappleh

不知道哪里出错了,控制台的结果输出的是一个fn函数

Renxuqing avatar Sep 15 '21 07:09 Renxuqing