<分区>
例如,我想要一个数字数组中的最大数字。
var numbers = [54,34,76,33,87,12,76,92,44,93,23];
我希望能够在不使用 eval
的情况下使用 Math.max()
找到最大数。
因此,我希望能够将一组参数传递给一个函数。数组的长度可以改变,所以 Math.max(numbers[0],numbers[1]...)
将不起作用。
有什么办法可以做到这一点吗?
标签 javascript arrays
<分区>
例如,我想要一个数字数组中的最大数字。
var numbers = [54,34,76,33,87,12,76,92,44,93,23];
我希望能够在不使用 eval
的情况下使用 Math.max()
找到最大数。
因此,我希望能够将一组参数传递给一个函数。数组的长度可以改变,所以 Math.max(numbers[0],numbers[1]...)
将不起作用。
有什么办法可以做到这一点吗?
最佳答案
您可以使用 .apply()
方法:
var max = Math.max.apply(Math, numbers);
.apply()
方法是 Function.prototype
的属性,因此可用于所有函数实例。它的第一个参数用作要调用的函数中 this
的值,第二个参数应该是一个数组,将用作参数值列表。
在我上面的示例中,我使用 Math
作为 this
的值,因为这就是 this
在 的典型调用中的值>Math.max
,但是(至少在我安装的 Firefox 上)Math.max.apply(null, numbers);
也可以。
关于Javascript函数参数作为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32429447/