--- title: Math.max() slug: Web/JavaScript/Reference/Global_Objects/Math/max tags: - JavaScript - Math - Method translation_of: Web/JavaScript/Reference/Global_Objects/Math/max ---
A função Math.max()
retorna o maior de um ou mais números.
Math.max([valor1[,valor2, ...]])
valor1, valor2, ...
O maior dos números passados como argumentos. Se pelo menos um dos argumentos não puder ser convertido para um número {{jsxref("NaN")}} é retornado.
Por max
ser um método estático em Math
, você sempre irá usá-lo da seguinte maneira Math.max()
, e não como um método da classe Math
que você tenha instanciado.
Se nenhum argumento for passado o resultado sempre será - {{jsxref("Global_Objects/Infinity", "Infinity")}}.
Se um dos argumentos não puder ser convertido em um número, o resultado será {{jsxref("Global_Objects/NaN", "NaN")}}.
Math.max
Math.max(10, 20); // 20 Math.max(-10, -20); // -10 Math.max(-10, 20); // 20
{{jsxref("Array.prototype.reduce", "Array.reduce()")}} pode ser usada para encontrar o maior elemento em um vetor numérico, comparando cada valor:
var arr = [1, 2, 3]; var max = arr.reduce(function(a, b) { return Math.max(a, b); }, -Infinity);
A função a seguir utiliza {{jsxref("Function.prototype.apply()")}} para encontrar o elemento de maior valor dentro do array. getMaxOfArray([1,2,3])
é equivalente a Math.max(1, 2, 3)
, mas você pode usar getMaxOfArray
em arrays construídos programaticamente e o ideal é utilizá-la somente em arrays com relativamente poucos elementos.
function getMaxOfArray(numArray) { return Math.max.apply(null, numArray); }
O novo operador spread é um modo curto de se escrever a solução com apply
para retornar o maior valor de um array.
var arr = [1, 2, 3]; var max = Math.max(...arr); // max: 3
Entretanto, tanto spread(...
) quanto apply
irão ou falhar ou retornar o resultado errado caso o array tenha muitos elementos, porque eles tentam passar o array de elementos como parâmetros de funções. Veja usando apply e funções embutidas para mais detalhes. A solução com reduce
não apresenta esse problema.
Especificação | Status | Comentário |
---|---|---|
ECMAScript 1st Edition. Implemented in JavaScript 1.0 | Standard | Initial definition. |
{{SpecName('ES6', '#sec-15.8.2.11', 'Math.max')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-math.max', 'Math.max')}} | {{Spec2('ES6')}} |
{{ CompatibilityTable() }}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} |