1
resposta

imc.toFixed

Olá, alguém pode me ajudar? Após criar a função calculaImc, e pedir pra retornar o imc.toFixed, esta função parou de funcionar dentro do if. Fiz de acordo com as instruções mas não deu certo e o imc dos pacientes não está fixado em duas casas. Segue meu código para ajudar na compreenção.

var titulo = document.querySelector(".titulo");
titulo.textContent = "Aparecida Nutricionista";


/* Tudo isso para caucular o IMC de todos os pacientes.
Antes cauculava apenas do primeiro paciente.
Agora coloquei todos dentro de um for, e alterei o querySelectorAll()*/


var pacientes = document.querySelectorAll(".paciente");

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

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

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

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

var pesoEhValido = true;
var alturaEhValida = true;


if (peso <= 0 || peso >= 1000) {
    console.log("Peso inválido!");
    tdImc.textContent = "Peso inválido";
    pesoEhValido = false;

    paciente.classList.add("paciente-invalido");
}

if (altura <= 0 || altura >= 3.00) {
    console.log("Altura inválida!");
    tdImc.textContent = "Altura inválida";
    alturaEhValida = false;

    paciente.classList.add("paciente-invalido");
}

if (pesoEhValido && alturaEhValida) {
    var imc = peso / (altura * altura);
    tdImc.textContent = imc;
    }

}

function calculaImc(peso, altura){
    var imc = 0;

    imc = peso / (altura * altura);

    return imc.toFixed(2);
}
1 resposta

Oi William! Tudo bem? Segue minha sugestão para debugar o seu código:

Aqui a declaração da var, dentro do if, deve receber como valor a função calculaImc.

if (pesoEhValido && alturaEhValida) {
    var imc = peso / (altura * altura);
    tdImc.textContent = imc;
    }

Ficaria assim:

if (pesoValido && alturaValida) {
        let imc = calculaImc(peso, altura);
        tdImc.textContent = imc;
    }

Dessa forma ela vai "herdar" o retorno da função e o toFixed(2).

Me conta se deu certo depois. Espero ter ajudado!