Encontrar maior e menor número de array em JavaScript
Neste artigo você vai aprender a encontrar maior e menor número de array em JavaScript, utilizando funções nativas da linguagem
Para encontrar o maior e o menor número de um array em JavaScript, use Math.max() e Math.min() com o spread operator: Math.max(…arr) devolve o maior valor e Math.min(…arr) devolve o menor. O spread (…) é necessário porque esses métodos recebem números como argumentos separados, não um array direto. Para arrays muito grandes, prefira reduce() ou um laço, que evitam o erro de estouro de pilha.

Fala programador(a), beleza? Bora aprender mais sobre arrays e também sobre JavaScript!
Em JavaScript temos métodos da biblioteca Math para nos ajudar com a tarefa de encontrar números máximos e mínimos
Porém precisamos passar como argumento o array com o spread operator (…)
Ou seja, este código vai precisar pelo menos da versão ES6 de JavaScript, o que alguns navegadores antigos ainda não tem acesso
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Veja o exemplo prático da solução do problema:
const arr = [1, 382, 3, 123, 44, 0.9, 12]; const min = Math.min(...arr); const max = Math.max(...arr); console.log(min); // 0.9 console.log(max); // 382
Aqui criamos o array primeiramente, e definimos outras duas variáveis como max e min
Nelas aplicamos o snippet necessário para atingir o objetivo, passamos o array para os métodos max e min de Math
Porém com o … antes, que é o spred operator
Este operador faz com os itens sejam enviados um a um, podendo assim o JS definir qual é o maior e o menor número do array alvo
E então temos o resultado final, que neste caso foram .9 e 382 =)
Conclusão
Neste artigo você aprendeu a encontrar maior e menor número de array em JavaScript
Utilizamos os métodos min e max de Math
Foi necessário passar o array como argumento, porém com o spread operator, que é um recurso da versão 6 do Ecma Script
Então tome cuidado com a compatibilidade em navegadores mais antigos
Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!
Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!
Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias
O link acima contém um cupom de desconto para os cursos!
E quando o array é gigante?
O spread tem um limite escondido que muita gente não conhece
Quando o array é muito grande, o Math.max(…arr) pode estourar um RangeError: Maximum call stack size exceeded
Isso acontece porque cada item do array vira um argumento separado e lota a pilha de chamadas do JavaScript
O ponto exato onde isso quebra muda de motor pra motor, então pode rodar liso num navegador e falhar em outro
Nesses casos a saída é usar reduce() ou um laço simples, que passam item por item e não sofrem desse limite:
Pra arrays do dia a dia o spread resolve numa boa, mas se tu mexe com muitos dados já sabe o truque
Cuidado com array vazio e com NaN:
Dois detalhes que pegam a galera desprevenida
Se tu chamar Math.max() sem nenhum número (ou espalhando um array vazio), ele retorna -Infinity, e o Math.min() retorna Infinity
E se algum item do array for ou virar NaN, tanto o Math.max quanto o Math.min devolvem NaN
Então, antes de confiar no resultado, vale garantir que o array não tá vazio e que só tem número lá dentro
O material próprio disponível é sobre gerar número aleatório com Math.floor e Math.random, não sobre max/min de array, então não dá pra cravar aqui um relato de teste real sem inventar experiência. Pra virar primeira mão de verdade, faltaria rodar o Math.max(…arr) num array bem grande em navegadores diferentes e anotar em qual ponto cada um estoura o RangeError, comparando o desempenho com a versão em reduce().
Perguntas frequentes
Como encontrar o maior número de um array em JavaScript?
Use Math.max com o spread operator: Math.max(…arr). O spread expande o array em argumentos separados, que é o formato que o método espera.
Como encontrar o menor número de um array?
Use Math.min(…arr). É a mesma ideia do Math.max, só que devolve o menor valor.
Por que Math.max com o array direto não funciona?
Porque Math.max() e Math.min() recebem números como argumentos separados, não um array. Passando o array direto ele não compara os itens. Por isso usamos o spread operator (…) pra espalhar os elementos: Math.max(…arr).
Preciso mesmo do spread operator? E navegadores antigos?
O spread em chamada de função é um recurso do ECMAScript 2015 (ES6). Funciona em todos os navegadores modernos, mas não no Internet Explorer. Se precisar de compatibilidade com navegadores bem antigos, dá pra chegar no mesmo resultado com reduce().
E se o array for muito grande?
Com arrays muito grandes, o Math.max(…arr) pode lançar RangeError: Maximum call stack size exceeded, porque cada item vira um argumento e lota a pilha de chamadas. O limite depende do motor JavaScript, então pode funcionar num navegador e falhar em outro. Nesses casos, use reduce() ou um laço, que iteram item a item sem esse limite.
O que Math.max retorna com um array vazio?
Math.max() sem argumentos (ou com um array vazio espalhado) retorna -Infinity, e Math.min() retorna Infinity. Por isso vale checar se o array tem itens antes de usar o resultado.
E se tiver um valor NaN no array?
Se qualquer argumento for ou virar NaN, tanto Math.max quanto Math.min retornam NaN. Garanta que o array só tem números pra evitar esse resultado inesperado.
Leia também
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]

Ótimo post!! Me ajudou com meu trabalho de programação do curso.