Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] metodo reduce

Assisti, reassisti e não consigo fazer meu codigo funcionar... Ja até copiei o codigo da aula, e mesmo assim continua dando NaN. Será que alguem podia me mostrar onde eu to errando?

Literal:

const sala1= [ 2, 5, 10, 9]
const sala2 = [ 8, 7, 9, 6]
const sala3= [ 8, 9, 5, 6]
const sala4 = [ 10, 8, 9, 7]

function mediaSala(notasDaSala){
        const somaDasNotas = notasDaSala.reduce((acum,atual) => atual + acum , 0)
        return somaDasNotas/notasDaSala.lenght
}
console.log(mediaSala(sala1))

String:

const sala1= [ 2, 5, 10, 9]
const sala2 = [ 8, 7, 9, 6]
const sala3= [ 8, 9, 5, 6]
const sala4 = [ 10, 8, 9, 7]

const media = sala1.reduce((acum,atual) => acum + atual, 0) /sala1.lenght
console.log(media)

Agradeço desde já!

PS: fiz a const direitinho, mas quando envio a duvida ficam todas juntas...

1 resposta
solução!

Oi, João Pedro, tudo bem?

O único erro dos seus códigos é que nos arrays você está escrevendo uma propriedade chamada lenght, mas deveria ser escrita length. Se você trocar pela forma correta nos dois códigos, irá funcionar!

Uma dica para prevenir esse tipo de erro é utilizar o auto-completamento do VSCode quando queremos acessar uma propriedade de um array.

Por falar nisso, dentro de funções, você pode notar que o recurso de auto-completamento pode não funcionar, que seria o caso do seu primeiro código, onde você está utilizando o array dentro de uma função. Isso porque o JavaScript não consegue assegurar que o parâmetro recebido por uma função é de fato um array, e por isso não sugere métodos e propriedades de arrays automaticamente.

Nesses casos, você deve ter atenção redobrada ao escrever os nomes dos métodos e propriedades. Na medida do possível, consulte outros códigos que você escreveu antes. Ou você pode até mesmo fazer um teste rápido no mesmo arquivo, criando uma variável que armazena uma lista e, em seguida, escrever o nome da lista e digitar ponto (.) para ativar o recurso de auto-completamento do VSCode e ver os nomes das propriedades que aparecem.

Espero ter ajudado! Abraços e bons estudos :)