1
resposta

IMC calculado com a situação de cada paciente (peso baixo, normal ou obeso)

Acrescentei uma coluna na tabela onde se faz a verificação da situação do IMC do paciente.

<header>
    <div class="container">
        <h1 class="titulo">Aparecida Nutrição</h1>
    </div>
</header>
<main>
    <section class="container">
        <h2>Meus pacientes</h2>
        <table>
            <thead>
                <tr>
                    <th>Nome</th>
                    <th>Peso(kg)</th>
                    <th>Altura(m)</th>
                    <th>Gordura Corporal(%)</th>
                    <th>IMC</th>
                    <th>Situação do IMC</th>

                </tr>
            </thead>
            <tbody id="tabela-pacientes">
                <tr class="paciente" id="primeiro-paciente">
                    <td class="info-nome">Paulo</td>
                    <td class="info-peso">100</td>
                    <td class="info-altura">2.00</td>
                    <td class="info-gordura">10</td>
                    <td class="info-imc">0</td>
                    <td class="info-situacaoImc">0</td>
                </tr>

                <tr class="paciente" id="segundo-paciente">
                    <td class="info-nome">João</td>
                    <td class="info-peso">80</td>
                    <td class="info-altura">1.72</td>
                    <td class="info-gordura">40</td>
                    <td class="info-imc">0</td>
                    <td class="info-situacaoImc">0</td>
                </tr>

                <tr class="paciente" id="terceiro-paciente">
                    <td class="info-nome">Erica</td>
                    <td class="info-peso">54</td>
                    <td class="info-altura">1.64</td>
                    <td class="info-gordura">14</td>
                    <td class="info-imc">0</td>
                    <td class="info-situacaoImc">0</td>
                </tr>

                <tr class="paciente" id="quarto-paciente">
                    <td class="info-nome">Douglas</td>
                    <td class="info-peso">85</td>
                    <td class="info-altura">1.73</td>
                    <td class="info-gordura">24</td>
                    <td class="info-imc">0</td>
                    <td class="info-situacaoImc">0</td>
                </tr>
                <tr class="paciente" id="quinto-paciente">
                    <td class="info-nome">Tatiana</td>
                    <td class="info-peso">46</td>
                    <td class="info-altura">1.55</td>
                    <td class="info-gordura">19</td>
                    <td class="info-imc">0</td>
                    <td class="info-situacaoImc">0</td>
                </tr>
            </tbody>
        </table>

    </section>
</main>

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

var pacientes = document.querySelectorAll(".paciente"); //querySelectorAll seleciona todos os valores da classe

for (var i = 0; i < pacientes.length; i++) { //pacientes.length pega até o valor final da sua array, vc não precisa estipular um valor

var paciente = pacientes[i];

var tdPeso = paciente.querySelector(".info-peso"); //querySelector seleciona apenas o primeiro valor
var peso = tdPeso.textContent; //variavel.textContent - pega o valor declarado dentro da variavel e não o comando em si

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

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

var situacaoImc = paciente.querySelector(".info-situacaoImc")

var pesoEhValido = true; //verifica se o valor colocado como peso é valido
var alturaEhValido = true; //verifica se o valor colocado como altura é valido

if (peso <= 0 || peso >= 1000) { //||  as 2 barras é o OU lógico
    console.log("Peso inválido!");
    tdImc.textContent = "Peso inválido!";
    pesoEhValido = false; //verifica se o valor colocado como peso é valido
}

if (altura <= 0 || altura >= 3.00) {
    console.log("Altura inválida!");
    tdImc.textContent = "Altura inválida!";
    alturaEhValido = false; //verifica se o valor colocado como altura é valido
}

if (alturaEhValido && pesoEhValido) { // && operador lógico E
    var imc = peso / (altura * altura);
    tdImc.textContent = imc.toFixed(2); // imc.toFixed(2) defino que eu quero duas casas decimas no meu resultado de imc
} else {
    tdImc.textContent = "Altura e/ou peso são inválidos."
}

if (imc < 18.5) {
    situacaoImc.textContent = "Peso abaixo do recomendado";
}

if (imc >= 18.6 && imc <= 24.9) {
    situacaoImc.textContent = "Parabéns, você está no peso ideal.";
}

if (imc >= 25 && imc <= 29.9) {
    situacaoImc.textContent = "Peso levemente acima do recomedado.";
}

if (imc >= 30 && imc <= 34.9) {
    situacaoImc.textContent = "Obesidade grau I";
}

if (imc >= 35 && imc <= 39.9) {
    situacaoImc.textContent = "Obesidade grau II";
}

if (imc > 40) {
    situacaoImc.textContent = "Obesidade grau III";
}

}

1 resposta

Olá, Andressa, tudo bem?

Que legal a sua implementação!! Obrigado por compartilhar com a gente, ficamos felizes de ver seu progresso! :)

Qualquer dúvida estaremos aqui para te responder! Continue assim e bons estudos :)