比方说,我想要一个数字数组中的最大数字。
var numbers = [54,34,76,33,87,12,76,92,44,93,23];
我希望能够使用Math.max()
查找最大数字而不使用eval
。
所以,我希望能够将一组参数传递给一个函数。数组的长度可能会发生变化,因此Math.max(numbers[0],numbers[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);
也适用。