To The Max pt-br Explainer

Explicação de Ao máximo

Objetivo deste desafio: Encontrar o maior número na array usando um laço e a função larger().

Passo a passo da solução: Para encontrar o máximo de uma lista, você pode comparar os 2 primeiros itens e armazenar um maior como o máximo atual. Depois você compara esse máximo atual com o 3º item e armazena o maior. Em seguida, continue até comparar cada item com o máximo atual. No final, o máximo será o maior valor da array.

A função larger() usa 2 números e gerará o maior deles. A função maximum() começa com a criação de uma variável max que armazenará o máximo atual, mas começará em 0 por enquanto. O laço percorrerá cada item da array e a manterá em uma variável chamada num. O que precisamos fazer é comparar o num com o max e armazenar o maior como o novo max.

Em vez de max = num, precisamos usar max = larger(max, num). Você também pode mudar a ordem dos argumentos.

Solução do código de exemplo:

(Toque abaixo para revelar)

function larger(a, b) {

return a > b ? a : b;

}

function maximum(array) {

let max = 0;

for (let num of array) {

max = larger(max, num);

}

return max;

}

console.log(list);

console.log(maximum(list));

Conceitos de JavaScript: Expressão Binária (>), Bloco de Código (função), Condicionais (declaração ternária), console.log(), Bloco de Código (laço for)

Código Adicional (código oculto executado antes do código do desafio):


const list = [...Array(4)].map(i=>pickRandom(90));

const _max = Math.max(...list);

list.splice(pickRandom(3)-1,0,_max+pickRandom(100-_max));

A minha dúvida faz parte do desafio “Ao Máximo”:

function larger(a, b) {

return a > b ? a : b;

}
function maximum(array) {

let max = 0;

for (let num of array) {

max = larger(max, num);

}

return max;

}

console.log(list);

console.log(maximum(list));

entendi todas as funções, só não consegui interpretar muito bem essas linhas de código:

const list = [...Array(4)].map(i=>pickRandom(90));

const _max = Math.max(...list);

list.splice(pickRandom(3)-1,0,_max+pickRandom(100-_max));

Se alguém puder explicar cada linha, eu agradeceria muito! :slight_smile:

Depois do:
for (let num of array) {

perceba agora que nós vamos atribuir a chamada de função
com a declaração em: max =
Você vai chamar a função: larger()
Depois declarar dentro dela: max, num
max = larger(max, num);
agora podemos fechar a declaração de for, fechando as chaves,
agota esse bloco de função ficará 100% correto.
}