Math.max()
Math.max()
静态方法返回作为输入参数给出的数字中最大的一个,如果没有任何参数则返回 -Infinity
。
试一试
语法
js
Math.max()
Math.max(value1)
Math.max(value1, value2)
Math.max(value1, value2, /* …, */ valueN)
参数
value1
、…、valueN
-
零个或多个数字,从中将选择并返回最大值。
返回值
描述
因为 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 的浏览器中加载。