Así que mi función a continuación es
const message = function (number) { for (let i = 0; i < 200; i++) { if (i % 7 == 0 && i % 9 == 0) { return "Why is the ground shaking"; } else if (i % 7 == 0) { return "Here is the magic 7"; } else if (i % 9 == 0) { return "Here is the magic 9"; } else { return "You have failed"; } } }; console.log(message(9)); console.log(message(4)); console.log(message(36)); console.log(message(21));Pero siempre regresa "¿Por qué tiembla el suelo?" Aunque no estoy seguro de por qué.
Deberías poner i = number en lugar de i = 0
const message = function (number) { for (let i = number; i < 200; i++) { if (i % 7 == 0 && i % 9 == 0) { return "Why is the ground shaking"; } else if (i % 7 == 0) { return "Here is the magic 7"; } else if (i % 9 == 0) { return "Here is the magic 9"; } else { return "You have failed"; } } }; console.log(message(9)); console.log(message(4)); console.log(message(36)); console.log(message(21)); Como se menciona en la sección de comentarios, el bucle for es redundante aquí.
Su función de message(number) tiene 1 argumento, que es el number , y si tiene su if - else con declaraciones de return , su ciclo se ejecutará solo una vez en cada llamada de función (cuando ocurra el return ). Podrías poner i < 1 o i < 2000 , el resultado sería el mismo.
Entonces, lo que puede hacer es eliminar el bucle y simplemente poner su argumento (number) en lugar de i en cada una de sus declaraciones if .
No soy el mejor explicando, pero espero haberte ayudado.
const message = function (number) { if (number % 7 == 0 && number % 9 == 0) { return "Why is the ground shaking"; } else if (number % 7 == 0) { return "Here is the magic 7"; } else if (number % 9 == 0) { return "Here is the magic 9"; } else { return "You have failed"; } }; console.log(message(9)); console.log(message(4)); console.log(message(36)); console.log(message(21));