[英]destructure arguments into a function call with javascript
我有一个函数,它采用可变数量的参数,我在数组中有这些参数。 该函数不将数组作为参数。 我想要做的是将数组解构为函数调用的参数。 我不确定数组有多长,但我知道它将超过3。
var array = ['a', 'b', 'c', 'd', ...etc]
doit(arr[0], arr[1], arr[2], ...etc)
function doit( a, b, ...c){
//do stuff
}
听起来你应该将 array
扩展到doit
的调用中:
doit(...array);
请注意,这称为spread (或“spread语法”),它不是解构。 解构涉及创建新变量或分配给现有变量。
较旧的方法是使用apply
:
doit.apply(undefined, array);
一种方法是在任何javascript函数中使用特殊变量arguments
。 无论计数如何,您都可以访问所有参数。
var arr1 = ['a', 'b', 'c', 'd', 'e', 'f']; var arr2 = ['A', 'B', 'C']; doit(arr1); // one argument: [a,b,c,d,e,f] doit(arr2); // one argument: [A,B,C] doit(arr1[0], arr2[1], 'anything', -3.1); // four arguments: a, B, 'anything', -3.1 function doit(){ for(var i=0; i<arguments.length; i++) { console.log("argument " + i + " is : " + arguments[i]); } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.