Javascript函数参数作为数组

时间:2015-09-06 23:56:00

标签: javascript arrays

比方说,我想要一个数字数组中的最大数字。

var numbers = [54,34,76,33,87,12,76,92,44,93,23];

我希望能够使用Math.max()查找最大数字而不使用eval

所以,我希望能够将一组参数传递给一个函数。数组的长度可能会发生变化,因此Math.max(numbers[0],numbers[1]...)无法正常工作。

我有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:2)

您可以使用.apply()方法:

var max = Math.max.apply(Math, numbers);

.apply()方法是Function.prototype的属性,因此可用于所有函数实例。它的第一个参数用作要调用的函数中this的值,第二个参数应该是一个将用作参数值列表的数组。

在我上面的示例中,我使用了Math作为this的值,因为this的典型调用中的Math.max是什么,但是(至少在我安装的Firefox上)Math.max.apply(null, numbers);也适用。