Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

Mi solucion al problema con uso de la estructura switch en vez de un for

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Juego Secreto</title>
  </head>
  <body>
    <h1>JUEGO SECRETO_2</h1>

    <input />
    <button>Verificar si acerto con el secreto (JUEGO_SECRET02)</button>

    <script>
      //Almaceno cuatro valores diferentes para adivinar
      const valorSecreto = [3, 5, 7, 9];

      //Capturo la variable de HTML en la variable input
      var input = document.querySelector("input");
      //Pongo en cursor en la casilla de input
      input.focus();

      //Funcion de verificar
      function verificar() {
        let valor = parseInt(input.value);
        switch (valor) {

          case valorSecreto[0]:
            alert("Usted acerto el numero");
            input.value = "";
            break;

          case valorSecreto[1]:
            alert("Usted acerto el numero");
            input.value = "";
            break;

          case valorSecreto[2]:
            alert("Usted acerto el numero");
            input.value = "";
            break;

          case valorSecreto[3]:
            alert("Usted acerto el numero");
            input.value = "";
            break;

          default:
            alert("Usted erro, el numero");
            input.value = "";
        }

      }

      //Vamos a poner el curso en la caja del input
      input.focus();
      //extraer el valor del boton
      var button = document.querySelector("button");
      button.onclick = verificar;
    </script>
  </body>
</html>
3 respuestas

Que increíble que ya tengas otros conocimientos sobre esto.

Hola compañero, muy buena tu solución, es otra forma también valida para casos en donde un Array tenga pocos datos... pero imagina un Array de 1000 datos, con valores diferentes en cada posición... tendrías que hacer un Switch muy largo por cada caso y por ende difícil de "mantener". Es por ello que el profe recomienda utilizar el "length" ya que el tamaño del Array puede cambiar con el tiempo (podemos llegar a necesitar agregar más elementos a nuestro array). Espero haber sido de ayuda y cualquier cosa estamos para darnos una mano. Saludos!

Estaba escribiendo precisamente lo que dice el comentario anterior. El for nos evita la sobreescritura de código.

Igualmente se puede utilizar la función incorporada de JavaScript para hacer esto.

 function verificar() {
    let valor = parseInt(input.value);
    if (valorSecreto.includes(valor)) {
      alert("Usted acerto el numero");
      input.value = "";
    } else {
      alert("Usted erro, el numero");
      input.value = "";
    }
}