Escolha uma Página
3 formas de extrair valor mínimo e máximo em um array usando Javascript !!spoiler!! a terceira forma é um filé.
05/13/2023

2:00 PM – Professor, estou querendo descobrir o valor máximo e o menor valor de um array de números. Já tentei usar essas funções max e min que tem na biblioteca Math e nada.
vou mandar meu código pro senhor ver, ah desculpa enviar isso a uma hora dessa.

let notas = [6.5, 4.3, 8.75, 9, 3];
Math.max(notas);
Math.min(notas);

2:01 PM A resposta que sai é NaN. Help me!

Já vi daqui o seu problema, jovem chimpanzé, e vou te ajudar a encontrar a melhor solução! Mas antes temos que considerar algumas coisas sobre as funções max e min da biblioteca Math:

  1. Ambas precisam que números sejam passados como argumentos, caso não seja passado nenhum, o resultado será -Infinity (max) ou Infinity(min).
  2. Caso algum dos argumentos passados não possa ser convertido para número o retorno é NaN.

No seu caso, você está tentando passar um array, vamos considerar três alternativas, e a última eu acho que é mais bacana.

1 – Utilizando o método reduce()

esqueleto do método:
array.reduce((s, a)=> ‘operação com s e a’);

Em geral o método reduce() é utilizado para somar todos os elementos de um array. Mas, no seu caso, podemos utilizá-lo para comparar par por par de elementos do array e ficar só com o menor ao final. da seguinte forma:

notas.reduce((a,b)=>Math.max(a,b))
notas.reduce((a,b)=>Math.min(a,b))

2 – usando o apply : O ES6/ES2015 ajudando de montão.

Math.max.apply(Mathnotas);
Math.min.apply(Mathnotas);

Essa é a hora de você dizer “E era só isso?”.
Indica-se que deva ser usado em arrays com poucos elementos, mas o melhor está ainda por vir, o terceiro modo é um filezinho.

3 – Três pontinhos do poder 😀

Nobre chimpa, entenda que todo o problema residia no fato de você estar tentando desde o início empurrar um array pela goela do Math.max() e do seu irmão Math.min(). A partir de agora você vai espalhar os elementos do array dentro desse método utilizando o spread operator.

Math.max(…notas) ;
Math.min(…notas)

e voilá, meu amigo. Em outra postagem falarei mais sobre o poder do spread operator, usos, aplicações e sobre seu gêmeo o rest operator.

Todo o diálogo foi fictício porém baseado em fatos reais.

Vamos continuar essa conversa lá nas minhas redes sociais!

Outras postagens

Gêneros dos Jogos digitais

De Tenis For Two até Cyberpunk 2077 surgiram inúmeros tipos de gêneros de jogos com vários subgêneros. Muitos jogos passaram a mesclar diversos dos gêneros elencados nesse artigo como forma de incrementar a experiência do jogador. Um gênero de game é utilizado para...