Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Essa versão da função é considerada "gambiarra" ou está certo?

no curso de java script criamos uma função para montar as Trs, ela chama a função td e recebe o objeto paciente

function montarTr(paciente){
    var pacienteTr = document.createElement("tr");

    pacienteTr.appendChild(montarTd(paciente.nome, "info-nome"));
    pacienteTr.appendChild(montarTd(paciente.peso, "info-peso"));
    pacienteTr.appendChild(montarTd(paciente.altura, "info-altura"));
    pacienteTr.appendChild(montarTd(paciente.gordura, "info-gordura"));
    pacienteTr.appendChild(montarTd(paciente.imc, "info-imc"));
    pacienteTr.classList.add("paciente")

    return pacienteTr;
}
function montarTd(conteudo, classe ){
    var td = document.createElement("td");
    td.textContent = conteudo;
    td.classList.add(classe);

    return td;
}

eu estava pensando se tinha uma forma de fazer um foreach no objeto paciente pra fazer ele rodar pelos atributos dentro do objeto, e eu cheguei nessa conclusão, que eu achei muito boa, mas não sei se ela é considerada não legivel ou complicada demais, queria saber o que me dizem

function montarTr(paciente){
    //versão antiga e direta sem uso de loop
    //pacienteTr.appendChild(montarTd(paciente.nome, "info-nome"));
    //pacienteTr.appendChild(montarTd(paciente.peso, "info-peso"));
    //pacienteTr.appendChild(montarTd(paciente.altura, "info-altura"));
    //pacienteTr.appendChild(montarTd(paciente.gordura, "info-gordura"));
    //pacienteTr.appendChild(montarTd(paciente.imc, "info-imc"));
    //pacienteTr.classList.add("paciente")
    var pacienteTr = document.createElement("tr");
    //versão melhorada com utilização de loop em objeto
    Object.entries(paciente).forEach(function(pacientef){
        pacienteTr.appendChild(montarTd(pacientef[1], ("info-"+pacientef[0])) );
        pacienteTr.classList.add("paciente");
    });
    return pacienteTr;
}

com esse loop eu faço literalmente as mesmas coisas que da outra forma e adiciono até as tags info- de cada paciente, achei que dessa forma fica muito mais sucinto e eficiente, porque eu posso adicionar mais informações ou retirar quando eu quiser que não vai afetar o codigo, porque ele fica "modular", talvez?!?!

1 resposta
solução!

Fala, Eric! Tudo bem?

Excelente ideia! Não é gambiarra e, ao trabalhar com JavaScript, essa escrita pode ajudar muito. Inclusive, se o paciente recebesse novas propriedades (ou perdesse outras), com o seu código, essa função não precisaria ser modificada.

Se você quiser entender melhor como essa escrita é benéfica, você pode ler mais sobre aqui.

Bons estudos!