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

duvida sobre minha implementação.

Olá a todos, sou novo no javascript, primeira vez que estudo essa linguagem e depois de ter visto a aula, implementei meu código e acabou ficando bem diferente do professor, mas no final o resultado é o mesmo, sei que na programação cada programador teu sua particularidade na hora de programar, mas sabemos que existe boas praticas de programação e no mercado de trabalho isso é muito cobrado, não adianta fazer um código funcionar se ele é de mal entendimento para futuras correções. gostaria de opiniões sobre minha implementação, seria muito útil ter criticas construtivas de como melhorar meu código caso seja preciso..

imc.js

//percorre todos <tr> e coloca em uma collection de Object
var pacientes = document.getElementsByClassName("paciente");

//chama minha função responsável por percorrer meus objetos com elementos <tr>
percorreArray(pacientes,comportamento);

/*parametros:
    paciente(objeto retornado do meu percorreArrays.js)
    i(indice necessario para imprimir o Imc do paciente na função "imprimeImc")
*/
function comportamento(paciente,i){
        var nome = paciente.getElementsByClassName("info-nome")[0].textContent;
        var peso = paciente.getElementsByClassName("info-peso")[0].textContent;
        var altura = paciente.getElementsByClassName("info-altura")[0].textContent;
        var objectPaciente = {nome,peso,altura};
        imprimeImc(objectPaciente,i)
        imprimePaciente(objectPaciente);
}

//função que imprime IMC do paciente
function imprimeImc(paciente,i){
    document.getElementsByClassName("info-imc")[i].textContent = calculaImc(paciente);
}

//função que calcula IMC
function calculaImc(paciente){
    return paciente.peso*(paciente.altura/paciente.altura);
}

percorreArrays.js

/*percorre meu array de Object pegando minhas informações do tipo "text" de cada <tr> e 
adicionando em um Object do tipo paciente*/
function percorreArray(object,comportamento){
    for(var i=0;i<object.length;i++){
        comportamento(object[i],i);
    }
}

imprimePaciente.js

//imprime na console os nomes dos pacientes
function imprimePaciente(paciente){
    console.log(paciente.nome);
}
2 respostas
solução!

Oi William, eu acho que ficou com muita chamada de função dentro de função.. para eu chegar na parte que imprime, tenho que sair navegando por umas 3 funções antes.. Falo isso, pq o código não parece ser tão complexo para ter esse número de divisões.

Pelo outro lado, é legal que vc tenha feito pq mostra que vc realmente entendeu.. um passo importante no entendimento de qualquer assunto, é quando vc consegue pegar o que foi passado e modificar seguindo sua linha de pensamento.

verdade, eu realmente poderia ter diminuído nas chamadas, porque acho que acabei deixando mais complicado um código relativamente simples, mas tudo bem. valew pela dica!