Math.max()

基线 广泛可用

此功能已得到良好建立,并且可在许多设备和浏览器版本上运行。它自以下时间起在浏览器中可用: 2015 年 7 月.

Math.max() 静态方法返回作为输入参数给出的数字中最大的一个,如果没有任何参数则返回 -Infinity

试一试

语法

js
Math.max()
Math.max(value1)
Math.max(value1, value2)
Math.max(value1, value2, /* …, */ valueN)

参数

value1、…、valueN

零个或多个数字,从中将选择并返回最大值。

返回值

给定数字中最大的一个。如果任何参数为或转换为 NaN,则返回 NaN。如果未提供参数,则返回 -Infinity

描述

因为 max()Math 的静态方法,所以您始终将其用作 Math.max(),而不是作为您创建的 Math 对象的方法(Math 不是构造函数)。

Math.max.length 为 2,这弱化地表明它旨在处理至少两个参数。

示例

使用 Math.max()

js
Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20

获取数组中的最大元素

Array.prototype.reduce() 可用于通过比较每个值来查找数字数组中的最大元素。

js
const arr = [1, 2, 3];
const max = arr.reduce((a, b) => Math.max(a, b), -Infinity);

以下函数使用 Function.prototype.apply() 获取数组的最大值。getMaxOfArray([1, 2, 3]) 等效于 Math.max(1, 2, 3),但您可以对以编程方式构建的数组使用 getMaxOfArray()。这仅应用于元素相对较少的数组。

js
function getMaxOfArray(numArray) {
  return Math.max.apply(null, numArray);
}

扩展语法是编写 apply 解决方案以获取数组最大值的更简短方法。

js
const arr = [1, 2, 3];
const max = Math.max(...arr);

但是,如果数组元素过多,则扩展 (...) 和 apply 都会失败或返回错误的结果,因为它们试图将数组元素作为函数参数传递。有关详细信息,请参阅 使用 apply 和内置函数reduce 解决方案不存在此问题。

规范

规范
ECMAScript 语言规范
# sec-math.max

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅