O ponto chave nesse desafio é trabalhar com uma quantidade qualquer de números, sejam 3 ou 3000. Para isso podemos usar arrays, assim ao chamar a função temos a liberdade de passar quantos números quisermos e isso será tratado corretamente dentro dela.
function average(numbers) { let sum = 0
numbers.forEach(number => {
sum += num
})
const avg = sum / numbers.length
return avg
}
Podemos aproveitar a função .reduce do próprio javascript:
function average(numbers) {
const sum = numbers.reduce((accum, num) => accum + num, 0)
const avg = sum / numbers.length
return avg
}
Também podemos utilizar operador spread para que os parâmetros não precisem ser passados como um array:
function average(...numbers) {
const sum = numbers.reduce((accum, num) => accum + num, 0)
const avg = sum / numbers.length
return avg
}
Por fim, podemos remover declarações de variáveis desnecessárias e realizar o retorno direto da operação matemática:
function average(...numbers) {
return numbers.reduce((accum, num) => accum + num, 0) / numbers.length
}