将参数分解为使用javascript的函数调用

时间:2018-11-21 07:08:26

标签: javascript arrays

我有一个函数,它接受可变数量的参数,并且在数组中有这些参数。该函数不将数组作为参数。我想做的是将数组分解为函数调用的参数。我不确定数组有多长,但我知道它将超过3。

var array = ['a', 'b', 'c', 'd', ...etc]
doit(arr[0], arr[1], arr[2], ...etc)

function doit( a, b, ...c){
  //do stuff
}

2 个答案:

答案 0 :(得分:3)

听起来像您应该传播 arraydoit的呼叫中:

doit(...array);

请注意,这称为 spread (或“ spread语法”),它不会造成破坏。销毁涉及创建新变量或分配给现有变量。

较旧的方法是使用apply

doit.apply(undefined, array);

答案 1 :(得分:0)

一种方法是在任何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]);
  }
}