将数组传递给Javascript函数,仅传递第一个元素

时间:2020-08-04 01:37:43

标签: javascript arrays function parameters

我正在使用以下代码将数组传递给可变javascript函数

function parse(fn, args)
{
     var parameters = [];

     if (args)
     {
          for (var i = 0; i < args.length; i++)
          {
               parameters.push(args[i]);
          }
     }

     fn = (typeof fn == "function") ? fn : window[fn];
     return fn.apply(this, parameters);
}

function SomeFunction(parameters)                                                                    
{
     console.log(parameters);                                                                        
}

在某种程度上,这是有效的,因为调用了正确的函数并将参数传递给它。但是,我只收到函数中数组的第一个元素,这显然是我遇到的问题,因为我需要数组的所有元素而不仅仅是第一个。

1 个答案:

答案 0 :(得分:0)

...参数使用parse(余数运算符),将简化并正确地传递数组。

function parse(fn, ...parameters) {
  fn = typeof fn == "function" ? fn : window[fn];
  return fn.apply(this, parameters);
}

function SomeFunction(parameters) {
  console.log(parameters);
}

parse(SomeFunction, [1, 2]);