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

Utilizar o <= pacientes.length

Olá pessoal,

Quando eu utilizei o < pacientes.length os imcs são calculados normalmente, mas isso me deixou com uma duvida com relação ao for loop.

Se eu utilizar:

for(var i = 0; i < pacientes.length; i++) { ... }

O codigo funciona perfeitamente, sem nenhum erro.

Porem, quando eu utilizo:

for(var i = 0; i <= pacientes.length; i++) { ... }

Os imcs são todos calculados, mas aparece o erro:

Uncaught TypeError: Cannot read property 'querySelector' of undefined
    at principal.js:10

Linha 10: var tdPeso = paciente.querySelector('.info-peso');

Eu estou tentando apenas entender o erro. Se 0 seria o primeiro paciente da lista, por que então aparece undefined?

2 respostas
solução!

Fala aí, Bruno! Tudo certo, cara? =)

Como você mesmo disse, o primeiro elemento começa com o índice 0. Porém quando você coloca pacientes.length, você está buscando o tamanho do Array...

Vamos supor que você tenha um Array com 5 posições... Os índices deles são 0, 1, 2, 3 e 4. Dessa forma, quando você for executar o laço for, você estará percorrendo do 0 ao 5, sacou? Então o undefined não é para a primeira posição, mas para a última que ele tentará acessar! Como você apontou, ele calcula todos os IMC's corretamente. O problema é quando ele tenta acessar o índice 5 do Array! Sacou? =)

Espero ter ajudado, mas qualquer dúvida não deixe de postar por aqui para que possamos ajudá-lo! Beleza? =)

Abraço e bons estudos,

Fábio

Valeu Fabio, ajudou bastante! Abraços!