Fala Galera !
Tudo bem?
Bom, a minha dúvida é a seguinte: Como eu sofro de ansiedade : - | ahahah eu já havia criado uma estrutura de funções antes mesmo de assistir a aula sobre funções desse curso. Uma das coisas que me chamou a atenção foi a utilização do "this." e poder passar uma função como parâmetro para outra função. Como eu já havia montado uma estrutura de funções, eu tive uma certa dificuldade para implementar essa ideia no meu código. Diante dessa situação, eu vou colar aqui o código do meu arquivo js.
//Retorna a lista de pacientes existentes
function selecionaPaciente(){
var listagemDePacientes = document.getElementsByClassName("paciente");
return listagemDePacientes;
}
//Função para selecionar os elementos de um único paciente
function selecionaTdsDoPaciente(posicaoAtual){
var listaDePacientes = selecionaPaciente();
var pacienteTR = listaDePacientes[posicaoAtual];
var tdNome = pacienteTR.getElementsByClassName("info-nome")[0];
var tdPeso = pacienteTR.getElementsByClassName("info-peso")[0];
var tdAltura = pacienteTR.getElementsByClassName("info-altura")[0];
var tdImc = pacienteTR.getElementsByClassName("info-imc")[0];
var tdDiagnostico = pacienteTR.getElementsByClassName("info-diagnostico")[0];
var paciente = {
nome : tdNome.textContent,
peso : tdPeso.textContent,
altura : tdAltura.textContent,
imc: tdImc,
diagnostico : tdDiagnostico};
return paciente;
}
//Realiza o Cálculo do IMC
function calculaIMC(){
var listaTrsPacientes = selecionaPaciente();
for(var posicaoAtual = 0; posicaoAtual <= listaTrsPacientes.length - 1; posicaoAtual++){
var paciente = selecionaTdsDoPaciente(posicaoAtual);
if (paciente.altura != 0 ){
var resultado_imc = paciente.peso / (paciente.altura * paciente.altura);
paciente.imc.textContent = resultado_imc;
classificaImc(paciente,resultado_imc);
}else{
alert("Impossível de calcular seu IMC ");
}
}
}
//Função para classificar IMC
function classificaImc(paciente, imc){
if(imc < 19.1){
paciente.diagnostico.textContent = "abaixo do peso";
}else if(imc > 19.1 && imc <= 25.8){
paciente.diagnostico.textContent = "No peso normal";
}else if(imc > 25.8 && imc <= 27.3){
paciente.diagnostico.textContent = "Marginalmente acima do peso";
}else if(imc > 27,3 && imc <= 32,3){
paciente.diagnostico.textContent = "Acima do peso";
}else{
paciente.diagnostico.textContent = "Obeso, pare de Comer Oxe!!!";
}
}
__
De que maneira eu posso melhorar esse código ?