Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Meu código de média não funciona

O array recebe o novo número, mas a média não é calculada. O resultado é NaN.

/// criando uma lista
let notas = [10,5,6,8,9];
const media = (notas[0]+notas[1]+notas[2]+notas[3]+notas[4])/5;
console.log (media);
console.log (notas [3]);
console.log (notas.length);
const mediaNova = (notas[0]+notas[1]+notas[2]+notas[3]+notas[4]+notas[5])/notas.length;      
console.log (mediaNova);    

///array de strings (texto)
frutas = ['banana','maçã','pera','laranja','manga'];
console.log (frutas);
console.log (frutas[0]);
/// lembrar que a contagem de array sempre começa em 0

/// Adicionando elementos ao array
frutas.push('abacaxi');
notas.push(10);

console.log(frutas[5]);
console.log(notas);
console.log(mediaNova);

como corrigir isso?

2 respostas
solução!

Olá Vicente, tudo bem? Espero que sim!

O que acontece é que você está tentando acessar um índice do array que não existe ainda no momento que o cálculo da média nova é feito.

Vamos entender melhor com um exemplo. Quando você declara o array notas, ele tem 5 elementos. Então, quando você tenta calcular a média nova, você está tentando acessar o sexto elemento (índice 5), que ainda não foi adicionado ao array. Por isso, o resultado é NaN, que significa "Not a Number".

A solução é calcular a média nova depois de adicionar o novo elemento ao array. Assim:

let notas = [10,5,6,8,9];
const media = (notas[0]+notas[1]+notas[2]+notas[3]+notas[4])/5;
console.log (media);
console.log (notas [3]);
console.log (notas.length);

/// Adicionando elementos ao array
notas.push(10);

const mediaNova = (notas[0]+notas[1]+notas[2]+notas[3]+notas[4]+notas[5])/notas.length;      
console.log (mediaNova);    

Dessa forma, quando você tenta calcular a média nova, o sexto elemento já foi adicionado ao array e o cálculo pode ser feito corretamente.

Espero ter ajudado!

Caso tenha dúvidas, fico á disposição.

Abraços e bons estudos!

O problema é que você está tentando calcular a nova média após adicionar um novo número ao array notas sem atualizar o cálculo da média. Quando você adiciona um novo número usando notas.push(10), a variável mediaNova não é recalculada automaticamente.

Para calcular a média após adicionar um novo número ao array notas, você precisa atualizar o cálculo da média com a nova soma de todos os elementos no array, dividida pelo novo número de elementos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software