Quiero saber por qué mi función siempre devuelve false y cómo puedo solucionarlo. Al principio pensé que tenía algo que ver con mi sintaxis en check = ("stairway to heaven"===value || "Stairway to heaven"===value); . Pero no importa cómo lo ponga, siempre es false .
Traté de leer esto , pero por lo que pude entender, no me ayuda.
Creé esto en JavaScript para hacer diferentes cosas dependiendo de si el resultado de la check es verdadero o falso.
else if (textNodes[15].id === 16 && nextTextNodeId === 16) { showSongContainer(); if(check) { showTextNode(17); } if (!check) { textElement.innerText = 'That's superwrong! Maybe if you would use that small brain of yours you'd figure it out!'; showTextNode(11); }El código anterior ejecuta esta función primero, para determinar si una entrada de texto devuelve verdadero (escalera al cielo) o falso (cualquier cosa que no sea escalera al cielo):
function showSongContainer() { songContainer.style.display = 'unset'; const songInput = document.getElementById('songInput'); const songButton = document.getElementById('songButton'); songButton.addEventListener('click', (e) => { e.preventDefault(); let value = songInput.value; check = ("stairway to heaven"===value || "Stairway to heaven"===value); }); } Sin embargo, cuando se inicia el primer else if (en el primer bloque de código), siempre va a if(!check) , incluso antes de que se haya ingresado el texto. ¿Por qué es esto? ¿Y cómo hago para que devuelva el primero if (en el primer bloque de código) si la entrada de texto es correcta, y el otro if , si es incorrecto?
También he let check = ''; en un alcance global al comienzo de mi código, si eso tiene algo que ver con eso.