Javascript 将作为参数传递的多个变量添加到函数currying
如何使用函数curry实现这些场景Javascript 将作为参数传递的多个变量添加到函数currying,javascript,function,currying,Javascript,Function,Currying,如何使用函数curry实现这些场景 add(3,4)(3) add(3)(4)(3) add(3)(4,3) 我读过很多博客,都找不到这种情况。有人能帮我吗。像这样的事吗 var总计=0; 函数add(){ //把收到的每一个论点加起来 for(参数中的变量i) 总数+=参数[i]; 返回添加; } 添加(3,4)(3); 控制台日志(总计); 添加(3)(4)(3); 控制台日志(总计); 添加(3)(4,3); 控制台日志(总计)我在这里看到两种情况: 1. add(3,4)(3) ad
add(3,4)(3)
add(3)(4)(3)
add(3)(4,3)
我读过很多博客,都找不到这种情况。有人能帮我吗。像这样的事吗
var总计=0;
函数add(){
//把收到的每一个论点加起来
for(参数中的变量i)
总数+=参数[i];
返回添加;
}
添加(3,4)(3);
控制台日志(总计);
添加(3)(4)(3);
控制台日志(总计);
添加(3)(4,3);
控制台日志(总计)代码>我在这里看到两种情况:
1.
add(3,4)(3)
add(3)(4,3)
add(3)(4)(3)
及
2.
add(3,4)(3)
add(3)(4,3)
add(3)(4)(3)
您可以使用的第一个地址:
function add() {
const args1 = Array.prototype.slice.call(arguments);
return function() {
const args2 = Array.prototype.slice.call(arguments);
return args1.concat(args2).reduce(function(a, i) { return a + i });
}
}
第二个带有:
function add() {
const args1 = Array.prototype.slice.call(arguments);
return function() {
const args2 = Array.prototype.slice.call(arguments);
return function() {
const args3 = Array.prototype.slice.call(arguments);
return args1.concat(args2).concat(args3).reduce(function(a, i) { return a + i });
}
}
}
我没有找到一个同时处理这两个问题的解决方案。检查下划线或Ramda库。可能重复感谢Felix Kling。感谢@Thum Choon Tatexample@FelixKling hghi@gil.fernandes:是的,你读了Felix Kling的文章是正确的。JavaScript函数调用中的预设参数可能重复?(部分功能应用)-Felix Kling昨天