разрушить аргументы в вызове функции с помощью javascript

У меня есть функция, которая принимает переменное количество параметров, и у меня есть эти параметры в массиве. Функция не принимает массив в качестве параметра. Я хочу, чтобы преобразовать массив в аргументы вызова функции. Я не уверен, как долго массив, но я знаю, что будет больше 3.

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

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

Всего 2 ответа


Похоже, вам нужно просто распространить array на вызов doit :

doit(...array);

Обратите внимание, что это называется спрэдом (или «синтаксисом распространения»), который не разрушает. Деструктурирование включает либо создание новой переменной, либо назначение существующей переменной.

Более старый метод будет использовать apply :

doit.apply(undefined, array);

Один из способов - использовать специальные arguments переменной внутри любой функции javascript. Вы получите доступ ко всем аргументам, независимо от их количества.

 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]); } } 


Есть идеи?

10000