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

AYUDA

Hola a todos

El código me cuelga Google Chrome. Imagino que estará entrando en un loop infinito. Pero no logro encontrar el error. Es en el Curso 2 de Lógica de programación, en la parte 5 Aprovechando las ventajas de los arrays, en Validando duplicados. Si alguien logra descubrirlo agradeceré mucho la ayuda. Comparto mi código. Saludos y muchas gracias


<meta charset="UTF-8">

<input>
<button>Verificar si acertó con el secreto</button>

<script>
    function aleatorio () {

        return Math.round(Math.random()*10)

    }

    function sortearNumeros (cantidad) {
        var secretos = [];
        var contador = 1;

        while (contador <= cantidad) {
            var numeroAleatorio = aleatorio();
            console.log(numeroAleatorio);
            var encontrado = false;
            for (var posicion = 0 ; posicion < secretos.length ; posicion++) {
                if (numeroAleatorio = secretos[posicion]) {
                    encontrado = true;
                    break;
                }
            }

            if (encontrado == false) {
                secretos.push(numeroAleatorio);
                contador++;
            }

        }

        return secretos

    }


var secretos = sortearNumeros(4);

console.log(secretos);


var input = document.querySelector("input");
input.focus();

function verificar () {

    var encontrado = false;

    for (var posicion = 0 ; posicion < secretos.length ; posicion++) {

        if (parseInt(input.value) == secretos[posicion]) {

            alert("Usted acertó");
            encontrado = true;
            break;

        }   

    }

    if (encontrado == false) {

        alert("Usted erró");

    }



    input.value = "";
    input.focus();

}

var button = document.querySelector("button");
button.onclick = verificar;


</script>
4 respuestas

Hola Jorge, comparte el código mediante la opción </> . Un saludo

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Muchas gracias Luis Ya lo corregi Pero sigo sin darme cuenta donde esta mi error

Hola Jorge, tienes un error cuando iteras en el ciclo while. Un saludo

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Hola Jorge, lo que explica Luis es que siempre que uses un ciclo while, la variable que genera la condicion de fin debe ejecutarse para todas las opciones que realicen en cada iteraccion del lazo.

En tu caso, cuando en el ciclo For, encuentras que existe el numero en el array, usa un break y sales de ciclo. Pero sales del ciclo For y no del While, por eso la observacion de Luis.

Sdos