如何将一个未指定数量的参数传递给js函数?

时间:2014-05-02 23:35:44

标签: javascript for-loop

我正在尝试将多个参数传递给函数。问题是,论据的数量因情况而异。此函数用于向listview添加元素(使用Kendo UI),我不知道如何在JS中处理它

所以基本上,在文档中,如果我们想要在列表中添加2个元素,那么它应该是这样的。

var removed = sports.splice(1, 1, "tennis", "hockey");

我必须逐个将每个参数传递给函数。当我不知道确切的参数数量时,我无法做到这一点。 对于我从服务器收到的每个元素,我需要将它插入到splice方法中。

这就是我想要实现的目标:

for ( var i = 0; i < result.length; i++ )
{
        // add one more parameter to splice method
};

// in order to have something like this:
var removed = sports.splice(0, 0, result[0], result[1], ....,result[lastOne] );

谢谢

1 个答案:

答案 0 :(得分:2)

您可以在splice函数上调用apply,这允许您将参数指定为数组:

var removed = sports.splice.apply( sports, [0, 0].concat(result) );

但如果sports是标准数组(或者提供与标准unshift方法相同的其他方法),您也可以这样做:

var newLength = sports.unshift.apply( sports, result );