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

Função montaPaciente

Olá grupo, estou com uma dúvida já tentei de várias formas implementar a função que monta o paciente e faze-la funcionar no restante do código. segue abaixo as funções criadas, minha dúvida está em saber o que passar como parâmetro na função montaPaciente quando ela for chamada, mas se tudo o que eu fiz estiver errado, por favor me ajudem.. grato!

// Função montaPaciente

function montaPaciente(pacienteTr){

    var tdNome = pacienteTr.getElementsByClassName("info-nome")[0];
    var tdAltura = pacienteTr.getElementsByClassName("info-altura")[0];
    var tdPeso = pacienteTr.getElementsByClassName("info-peso")[0];
    var tdImc = pacienteTr.getElementsByClassName("info-imc")[0];

    var pacienteAtual = {"nome": tdNome.textContent, 
                         "altura": tdAltura.textContent, 
                         "peso": tdPeso.textContent, 
                         "imc": tdImc.textContent,
                         "pegaImc": function(){

                            if (this.altura!=0) {
                                var imc = this.peso/(this.altura*this.altura);
                                return imc;
                            } else {
                                console.log("Impossível Calcular IMC");
                            }
                         }};

    return paciente;
};

// Função percorreArrey

function percorreArray(trsPacientes, comportamento){
    for(var i = 0; i <= trsPacientes.length - 1; i++){

        var pacienteTrAtual = trsPacientes[i];

        comportamento(pacienteTrAtual);
    };
};

// imprimeNome

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

montaPaciente();  <------  ME PERDI AQUI

percorreArray(trsPacientes, function imprimeNome(pacienteTr){

console.log(pacienteAtual.nome);

});
3 respostas
solução!

Oi Romeu, primeiro você merece nota 10 por tentar ter resolvido e ter colado seu código aqui. Eu só o alterei para colocar a formatação especial ensinada nas dicas de "formatação".

Eu já entendi sua dúvida, vamos lá.

Veja a seguinte linha:

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

Nela você pega uma lista de elementos do DOM. Cada elemento do DOM é uma linha que contém todos os dados do paciente. Você precisa varrer esta lista de elementos e para cada elemento criar um paciente.

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

percorreArray(trsPacientes, function imprimeNome(pacienteTr){

console.log(pacienteAtual.nome);

});

Veja que no código cima, a função monta paciente não é chamada. Onde ela será chamada? Sem alterar muito seu código, você pode chamá-la dentro de percorreArray:

function percorreArray(trsPacientes, comportamento){
    for(var i = 0; i <= trsPacientes.length - 1; i++){

        // passa para montaPaciente 
        var pacienteTrAtual = montaPaciente(trsPacientes[i]);

        // agora sim! O comportamento está preparado para receber um paciente e acesso seu nome 
        comportamento(pacienteTrAtual);
    };
};

Romeu, tudo certo?

opa, Flávio, agora que pude dar uma olhada, muito bom! vou analisar o código e a lógica, valew mesmo. muito obrigado :)