Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Fiquei perdido...

Na função:

function mediaSala (notaSala){
    const somaDasNotas = notaSala.reduce((acumulador, atual)=>
    atual + acumulador,0)
    return somaDasNotas/notaSala.length
}

Nos utilizaremos os 02 parâmetros na reduce ( acumulador e o atual). A minha duvida é como esses elementos possuem os comportamentos definidos? o acumulador soma os valores e o atual é referente a nota da índice atual mas essas ações não possuem definições

2 respostas
solução!

Na verdade isso tá de acordo com a definição da função reduce():

array.reduce(callback( acumulator, currentValue[, index[, array]] )[, valorInicial]))

Como você pode ver, na própria definição do reduce() já tá indicado a ordem dos parâmetros da função de callback. Então quando temos:

const somaDasNotas = notaSala.reduce((acumulador, atual) => atual + acumulador,0)

pela definição, o primeiro parâmetro (acumulador) vai ser o acumulator, que se refere a variável que ficará acumulando o valor recursivamente, e o segundo parâmetro (atual) vai ser o currentValue, que se refere ao valor atual na iteração, ou seja, o item atual do array.

Além disso a função de callback ainda pode receber mais 2 parâmetros, o terceiro se refere ao índice do currentValue, e o quarto se refere ao próprio array.

Você pode dar uma olhada aqui pra aprofundar mais na definição.

Rodolpho, Obrigado pelas informações, também irei fazer a leitura para aprimorar o conhecimento.