Diseña una calculadora de IMC usando JavaScript

La calculadora del índice de masa corporal (IMC) se puede utilizar para calcular los valores del IMC en función de su altura y peso. El IMC es un indicador bastante confiable de la grasa corporal para la mayoría de las personas.

Fórmula:

BMI = (weight) / (height * height)

Enfoque: el IMC es un número calculado a partir del peso y la altura de una persona. Para averiguar el IMC, tomaremos información del usuario (tanto la altura como el peso) que se almacenará en la variable de altura y peso para su posterior cálculo. El proceso de cálculo es sencillo, simplemente dividiremos el peso en kilogramos por el cuadrado de la altura. Ahora, según el IMC calculado, ejecutará la declaración if-else respectiva. También estamos verificando si el usuario presiona el botón Enviar sin ingresar las entradas, en ese caso, estamos imprimiendo la altura o el peso.
Al usar HTML, estamos dando la estructura deseada, la opción para la entrada y el botón de envío. Con la ayuda de CSS, estamos embelleciendo nuestra estructura dándole los colores y la fuente deseada, etc.

En la sección de JavaScript, estamos procesando la entrada tomada y después de calcular, se imprime la salida respectiva.

Ejemplo:

HTML:

index.html

<!DOCTYPE html>
<html>
  
<head>
    <!-- Include JS files -->
    <script src="app.js"></script>
</head>
  
<body>
    <div class="container">
        <h1>BMI Calculator</h1>
  
        <!-- Option for providing height 
            and weight to the user-->
        <p>Height (in cm)</p>
  
        <input type="text" id="height">
  
        <p>Weight (in kg)</p>
  
        <input type="text" id="weight">
  
        <button id="btn">Calculate</button>
  
        <div id="result"></div>
    </div>
</body>
  
</html>

JavaScript:

app.js

window.onload = () => {
    let button = document.querySelector("#btn");
  
    // Function for calculating BMI
    button.addEventListener("click", calculateBMI);
};
  
function calculateBMI() {
  
    /* Getting input from user into height variable.
    Input is string so typecasting is necessary. */
    let height = parseInt(document
            .querySelector("#height").value);
  
    /* Getting input from user into weight variable. 
    Input is string so typecasting is necessary.*/
    let weight = parseInt(document
            .querySelector("#weight").value);
  
    let result = document.querySelector("#result");
  
    // Checking the user providing a proper
    // value or not
    if (height === "" || isNaN(height)) 
        result.innerHTML = "Provide a valid Height!";
  
    else if (weight === "" || isNaN(weight)) 
        result.innerHTML = "Provide a valid Weight!";
  
    // If both input is valid, calculate the bmi
    else {
  
        // Fixing upto 2 decimal places
        let bmi = (weight / ((height * height) 
                            / 10000)).toFixed(2);
  
        // Dividing as per the bmi conditions
        if (bmi < 18.6) result.innerHTML =
            `Under Weight : <span>${bmi}</span>`;
  
        else if (bmi >= 18.6 && bmi < 24.9) 
            result.innerHTML = 
                `Normal : <span>${bmi}</span>`;
  
        else result.innerHTML =
            `Over Weight : <span>${bmi}</span>`;
    }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por imsushant12 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *