Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

121
Views
Calcular el cambio de BMI JavaScript

Estoy haciendo una tarea estándar con codewares: escriba la función bmi que calcula el índice de masa corporal (bmi = peso / altura2).

Aquí está mi solución:

 function bmi(weight, height) { let bmi = weight / (height ** 2) if (bmi <= 18.5) { return "Underweight"; } else if (bmi <= 25.0) { return "Normal" } else if (bmi <= 30.0) { return "Overweight" } else if (bmi > 30) { return "Obese" } } console.log(bmi(80, 1.80))

Tengo una pregunta: ¿es posible resolver este problema con la ayuda de un interruptor? Porque lo probé de diferentes formas y en la consola tengo undefined :

 function bmi(weight, height) { let bmi = weight / (height ** 2) let c = "Normal" switch (bmi) { case "Underweight": bmi <= 18.5; break; case "Normal": bmi <= 25.0; break; case "Overweight": bmi <= 30.0; break; default: return; } } console.log(bmi(80, 1.80))

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

(Gracias al usuario derpirscher por señalar que proporcioné una respuesta completamente incorrecta. Actualicé una respuesta corregida a continuación).

Desafortunadamente, JS no admite esta sintaxis para declaraciones de switch , donde su caso es una comparación compleja con la expresión. Los casos simplemente se comparan con la expresión para una coincidencia simple. Mientras que uno podría hacer algo como esto:

 function bmi(weight, height) { let bmi = weight / (height ** 2) let c = "Normal" switch (true) { case bmi <= 18.5: c = "Underweight"; break; case bmi <= 25.0: c = "Normal"; break; case bmi <= 30.0: c = "Overweight"; break; default: c = "Obese" } return c; } console.log(bmi(8, 1.80)) console.log(bmi(80, 1.80)) console.log(bmi(800, 1.80))

Está utilizando el switch para un caso diferente al propósito previsto. Esta no es necesariamente una forma legible o expresiva de escribir esto: creo que su enfoque original con if...else es probablemente preferible a un enfoque basado en switch .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!