Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Paciente não definido, por que ?

Segue meu código, o browser da erro avisando que paciente nao foi definido, por que isso acontece, se a minha funcao montaPaciente retorna o paciente que foi montado ??? qual a correçao para este caso ?

´´´ var trsPacientes = document.getElementsByClassName("paciente");

var posicao = 0;

function calculaImc() { if (this.altura != 0) { var imc = this.peso / (this.altura * this.altura);

var tdImc = pegaAtual.getElementsByClassName("info-imc")[0]; tdImc.textContent = imc;

} else { console.log("A altura nao pode ser negativa !"); } }

function montaPaciente(posicao) { var pegaAtual = trsPacientes[posicao]; //pega paciente atual var tdNome = pegaAtual.getElementsByClassName("info-nome")[0]; var tdPeso = pegaAtual.getElementsByClassName("info-peso")[0]; var tdAltura = pegaAtual.getElementsByClassName("info-altura")[0];

var paciente = { nome: tdNome.textContent, peso: tdPeso.textContent, altura: tdAltura.textContent, pegaImc: calculaImc }; return paciente; }

while (posicao <= (trsPacientes.length - 1)) { montaPaciente(posicao); var imc = paciente.pegaImc() posicao++; }

´´´

2 respostas
solução

Dentro do seu While você faz a chamada da função montaPaciente(posicao) mas não guarda o seu valor em uma variável chamada paciente. Quando você faz var imc = paciente.pegaImc() ele não acha esse paciente.

Pra corrigir tente fazer

var paciente = montaPaciente(posicao);
var imc = paciente.pegaImc(); // Aí sim você terá um paciente definido.

Acho que isso já resolveria, mas se qualquer outro erro ocorrer poste aqui. Abraços

Obrigado !