Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] valor NaN

Resolución del desafío 3: Crea una función que calcule el índice de masa corporal (IMC) de una persona a partir de su altura en metros y peso en kilogramos, que se recibirán como parámetros. Lo estoy implementando de esta forma: function IndiceMasaCorporal() { peso = parseFloat(prompt("Me indica su peso en kilogramos")); let altura = parseFloat(prompt("Me indica su estatura en metros")); return peso, altura; }

function CalcularIMC(peso, altura) { let resultado = peso / (altura * altura); alert(Su indice de masa corporal es: ${resultado}); console.log(resultado); return resultado; } IndiceMasaCorporal(); CalcularIMC();

//pero me arroja un valor NaN y no se como solucionarlo.

1 respuesta

Me parece que es porque en IndiceMasaCorporal() estás retornando solo la altura. Esta sería una solución:

Capaz algo así funcione:

let peso = parseFloat(prompt("Me indica su peso en kilogramos"));
let altura = parseFloat(prompt("Me indica su estatura en metros"));


function CalcularIMC() {
   let resultado = peso / (altura * altura);
   alert(`Su indice de masa corporal es: ${resultado}`);
   console.log(resultado);
   return resultado; } 

CalcularIMC();

Esta es otra solución en la que capaz podrías servirte de los arreglos u objetos para retornar dos valores y luego utilizar ese arreglo/objeto en la siguiente función. Así:

function IndiceMasaCorporal()
{ let peso = parseFloat(prompt("Me indica su peso en kilogramos"));
 let altura = parseFloat(prompt("Me indica su estatura en metros"));
 return {peso: peso, altura: altura}; }


function CalcularIMC(obj) {
   let resultado = obj.peso / (obj.altura * obj.altura);
   alert(`Su indice de masa corporal es: ${resultado}`);
   console.log(resultado);
   return resultado; } 

CalcularIMC(IndiceMasaCorporal());

Ejecuto la función IndiceMasaCorporal dentro de CalcularIMC para que lo que retorna esa primera función se pase como parametro en la segunda.