我经常在javascript中遇到这种模式问题。我有一个add
函数
function add(a, b){
return a + b;
}
然后我可以add(1,2) //3
但如果我想传递任何长度的参数怎么办?
我无法自由add(1,2,3,4)
。或add(something,something,something)
。如果我想要我必须编写另一个接受4和3参数的add函数。
我知道我可以循环使用它们但是如何将任意数量的参数传递给js中的函数?
答案 0 :(得分:1)
你可以使用arguments属性。
function add(){
var sum=0;
for (var key in arguments)
sum=sum+arguments[key];
return sum;
}
console.log(add(1,2,3,7));
答案 1 :(得分:1)
您可以循环参数并添加值
function add(){
return Array.from(arguments).reduce((p,c)=>p+= !isNaN(c)? +c : 0, 0)
}
console.log(add(1,2,3,4,5))
console.log(add(1,2,3,'a', 7))

function add(){
return [].slice.call(arguments).reduce(function(p,c){
p+= !isNaN(c)? +c : 0;
return p;
}, 0)
}
console.log(add(1,2,3,4,5))
console.log(add(1,2,3,'a', 7))