Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Validando duplicados

Hola a todos tengo una duda alguien puede ayudarme con mi código se supone que en mi vector no debe ingresar valores repetidos pero sigue entrando los valor lo revise mi código y no encuentro donde estoy fallando

<input/>
<button> Verificar secreto</button>
<script>


    function aleatorio(){

        return (Math.round(Math.random() * 10));
    }
    function sortearNumero(cantidad){

        var secretos = [];
        var contador = 1;
        while (contador <=cantidad){
            var numeroAleatorio = aleatorio();
            console.log(numeroAleatorio);
            var encontrado = false;
            if (numeroAleatorio != 0){

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

                    if(numeroAleatorio == secretos[posicion]){
                    encontrado = true;
                    break;
                    }

                }

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

            }



        }

        return secretos;

    }


    var secretos = sortearNumero(4);
    console.log(secretos);

    var input = document.querySelector("input");
    input.focus();
        function verificar() {

            var encontro = false;

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

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

                    alert("Usted acerto" + secretos[posicion]);
                    encontro = true;
                    break;


                }


            }
            if (encontro == false) {

                alert("Usted fallo" );
            }
            input.value = "";
           input.focus();
        }


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


</script>
1 respuesta

Hola, el error esta en tu for:

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

En la expresión lógica debería ser posicion< secretos.length.

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

Como lo pusiste en tu código siempre da false por eso no entra en el ciclo for y no hace la validación.