Sé que estoy muy cerca, pero no puedo hacer que el código devuelva nada más que la variable 'savesTheDay' en la opción else. No creo que esté configurando mis condicionales if.... else correctamente. Creo que debería ir con el "final feliz" para la declaración if (en mi caso, ¿la variable savesTheDay ? ¿No debería definir 'nivel de peligro' dentro de la función ya que quiero que cambie? ¡Gracias!
** Editado: estoy tratando de que cada una de las fases regrese cuando llamo a la función de evaluación de situación. Solo puedo hacer que regrese el mensaje saveTheDay, incluso si el valor está fuera de los parámetros de la condición, es decir, evaluar la situación (1);. Esperaría obtener el "Meh. Hard Pass". valor de retorno en lugar de saveTheDay.
Se agregó un nuevo código, ¡aunque todavía no se está ejecutando! **
function assessSituation (dangerLevel, saveTheDay, badExcuse) { var saveTheDay = "Crime won't stand a chance against me!"; var dangerLevel = dangerLevel; var badExcuse = "I'm scared, I've never gone up against this many villains"; if (10 < dangerLevel < 50) { console.log(saveTheDay); } else if (dangerLevel > 50) { console.log(badExcuse); } else console.log("Meh. Hard Pass."); }JavaScript, como muchos otros lenguajes (C/C++, Java, etc.) excepto Python, no tiene soporte para encadenar operadores de comparación.
10 < dangerLevel < 50es equivalente a
(10 < dangerLevel /* true or false */) < 50 (true) < 50 // or (false) < 50 Dado que false == 0 y true == 1 , el resultado siempre será true ya que 0 y 1 son ambos menores que 50 .
Para arreglar su lógica, use el operador && (AND):
if ((10 < dangerLevel) && (dangerLevel < 50))Creo que solo regresa saveTheDay porque es el único condicional que coincide.
Su nivel de peligro = 10, por lo que el nivel de peligro no es> 50, y no es menor que 10, pero definitivamente es < 50. Si desea otro retorno, puede cambiar el nivel de peligro antes de la cláusula if else.
PD: no vi que su variable dentro de su función tenga el mismo nombre que la entrada. Debes elegir otro nombre si quieres tener ambos
está configurando el nivel de peligro = 10;
no importa lo que pase, 10 se completa para el nivel de peligro, por lo que:
10 nunca será > 50 nunca será < 10 siempre será < 50
por eso siempre obtienes savesTheDay