2
respuestas

No calcula correctamente los IMC

Mi código es el siguiente:

//Captura de las filas de los pacientes
var pacientes=document.querySelectorAll(".paciente");
console.log(pacientes);

for(var i=0; i<pacientes.length; i++){

    //Captura de las alturas y pesos 
    var paciente = pacientes[i];

    var tdPeso=paciente.querySelector(".info-peso");

    var peso = tdPeso.textContent;

    var tdAltura=document.querySelector(".info-altura");

    var altura=tdAltura.textContent;

    //Captura de la celda a escribir

    var tdIMC = paciente.querySelector(".info-imc");

    //Bloque de validación de peso y altura
    pesoEsValido = true;
    alturaEsValida = true;

    if(peso < 0 || peso >1000){
        console.log("Peso incorrecto");
        pesoEsValido=false;
        tdIMC.textContent="Peso incorrecto";
    }

    if(altura < 0 || altura > 3.00){
        console.log("Altura incorrecta");
        alturaEsValida=false;
        tdIMC.textContent="Altura incorrecta";
    }

    if(pesoEsValido && alturaEsValida){
        var imc=peso/(altura*altura);
        tdIMC.textContent=imc.toFixed(2);
    }
}

Pero solo el primer IMC es calculado correctamente, en el resto no se que está haciendo el programa porque los valores son inverosímiles, no logro encontrar el error: Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas

Una disculpa, ya encontré el error:

En: var tdAltura=document.querySelector(".info-altura");

Siempre estoy tomando la altura de Pablo. Al cambiarla por:

var tdAltura=paciente.querySelector(".info-altura");

Ya hace el cálculo correcto.

Hola Juan!

Excelente! Gracias por tu aporte!

Saludos