Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

duda sobre el primer punto del desafio IMC

Hola, estoy intentando aplicar al máximo los conocimientos aprendidos a este punto, por eso decidí usar los elementos del .HTML Pero tengo varias dudas con respecto al funcionamiento y optimización del código que hice como, por ejemplo:

  • Como hago para redondear el resultado a 1 decimal?
  • ¿En la función realmente es necesario pedir parámetros, o solo con variables locales funciona igual? Adicionalmente acepto comentarios de mejora en mi lógica. comparto el código de APP.js
let indiceMasaCorporal = verificarIntento();
let titulo = document.querySelector('h1').textContent = 'Calculadora IMC'


function verificarIntento(){
    let altura = parseFloat(document.querySelector('#capturaAltura').value);
    console.log(altura);
    let peso = parseFloat(document.querySelector('#valorUsuario').value);
    console.log(peso);
       

    let resultadoIMC = peso / (altura * altura);
    console.log(Math.round(resultadoIMC));

    document.querySelector('h1').textContent = `IMC : ${resultadoIMC}`;
    
    return resultadoIMC;   

        
}

Gracias por sus aportes.

3 respuestas

Hola Henderzon, espero estes muy bien. En lo personal no me compliqué tanto con los ejercicios y revisé con los ejercicios que los tutores dejan para comparar y fueron muy similares las soluciones.

Usted está intentando interactuar con el archivo HTML pero no lo adjunta para ver como está seleccionando los elementos de dicho archivo.

Le hice algunas correcciones al ejercicio que compartió solo para trabajar con el archivo js. Espero le sea de ayuda. Quedo atento.

function verificarIntento(altura, peso){
    var altura = parseFloat(prompt("Indique cual es su altura en metros"));
    console.log(altura);
    var peso = parseFloat(prompt("Indique cual es su peso en kilogramos"));
    console.log(peso);

    let resultadoIMC = peso / (altura * altura);    
    return resultadoIMC;           
}

    let calcularIMC = verificarIntento();
    console.log(`Su indice de masa corporal es ${calcularIMC}`);

Para redondear un número a una cantidad específica de decimales puedes usar el método toFixed(), poniendo dentro del paréntesis el número de decimales que quieres. Ejemplo, console.log(5.4653.toFixed(2)) // 5.46.

Espero que esto te ayude.

Hola, buenas noches. Espero se encuentre bien.

Respondiendo a tu duda, para redondear el resultado a 1 decimal, puedes usar toFixed(1) para redondear el IMC a un decimal. Además, respecto al uso de variables locales en la función, en tu caso, no es necesario pasar parámetros a la función ya que las variables locales dentro de la función verificarIntento() son suficientes para capturar los valores y calcular el IMC.