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

Dúvida no Ex. 4 da Aula 5 - Funções e os cidadãos de primeira classe

Boa tarde, não consegui entender a lógica desse código:

function montaPaciente(trDoPaciente){
    var nome = trDoPaciente.getElementsByClassName("info-nome")[0].textContent;
    var altura = trDoPaciente.getElementsByClassName("info-altura")[0].textContent;
    var peso = trDoPaciente.getElementsByClassName("info-peso")[0].textContent;
    var paciente = {
        nome : nome,
        altura: altura,
        peso : peso,
        pegaImc : function(){
            return peso/(altura*altura);
        }
    }
    return paciente;
}

var pacientes = document.getElementsByClassName("paciente");

for(var posicaoAtual = 0; posicaoAtual <= pacientes.length(); posicaoAtual++){
    var trDoPaciente = pacientes[posicaoAtual];
    var trDoImc = trDoPaciente.getElementsByClassName("info-imc")[0];
    var paciente = montaPaciente(trDoPaciente);
    var imc = paciente.pegaImc();
    trDoImc.textContent = imc;
    console.log(imc);
}

Se alguém puder me ajudar, desde já agradeço.

6 respostas

A função montaPaciente ele monta paciente conforme você passa um paciente por vez. Como você tem vários pacientes é necessário um for para montar um paciente por vez.

Mas então, como eu utilizaria essa function no meu código ? Já que o for está fora dela.

solução!

Você já esta chamando ela dentro do for:

var paciente = montaPaciente(trDoPaciente);

Aaaah entendi. Muito obrigado por ter esclarecido. Esse é meu primeiro contato com o JS, estou me habituando ainda.

cara, me tira uma dúvida.

vc conseguiu usar este script corretamente, vc endereçou ele nas outras páginas de script (imprime-nome.sj , calcula-imc.js)???

é porque eu não estou conseguindo chamar este script dentro das outras páginas de script... tem como vc me dar uma força?

cara, consegui!... heheh ;)