如何找到 JavaScript 数组中包含的最大数字?

2022-08-30 01:04:32

我有一个简单的JavaScript Array对象,其中包含一些数字。

[267, 306, 108]

有没有一个函数可以找到这个数组中最大的数字?


答案 1

重新签名以救援:

Array.max = function( array ){
    return Math.max.apply( Math, array );
};

警告:由于某些 VM 上的最大参数数低至 65535,因此,如果不确定数组是否那么小,请使用 for 循环。


答案 2

您可以使用 apply 函数来调用 Math.max

var array = [267, 306, 108];
var largest = Math.max.apply(Math, array); // 306

它是如何工作的?

apply 函数用于调用另一个函数,该函数具有给定的上下文和参数,以数组形式提供。最小值和最大值函数可以采用任意数量的输入参数:Math.max(val1, val2, ..., valN)

因此,如果我们调用:

Math.min.apply(Math, [1, 2, 3, 4]);

应用函数将执行:

Math.min(1, 2, 3, 4);

请注意,第一个参数(上下文)对于这些函数并不重要,因为它们是静态的。无论作为上下文传递什么,它们都将起作用。