Sumário

A função Math.max() retorna o maior de um ou mais números.

Sintaxe

Math.max([valor1[,valor2, ...]]) 

Parâmetros

valor1, valor2, ...
Números.

Valor de retorno

O maior dos números passados como argumentos. Se pelo menos um dos argumentos não puder ser convertido para um número NaN é retornado.

Descrição

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á - Infinity.

Se um dos argumentos não puder ser convertido em um número, o resultado será NaN.

Exemplos

Usando Math.max

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

Retornando o maior elemento de um array

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);
});

A função a seguir utiliza 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ções

Especificação Status Comentário
ECMAScript 1st Edition. Implemented in JavaScript 1.0 Standard Initial definition.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.max' in that specification.
Padrão  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.max' in that specification.
Padrão  

Compatibilidade de Navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Veja também

Etiquetas do documento e colaboradores

Etiquetas: 
Colaboradores desta página: lucasar, LucianoBritis, Thiago, teoli
Última atualização por: lucasar,