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

Duda sobre la variable para llamar la función aleatorio

Buenos días. Intenté utilizar la función aleatorio() directamente, en vez de utilizar una variable para llamar a la función y me he dado cuenta que al utilizar la función aleatorio() directamente, me salen números aleatorios repetidos ejemplo: 2,5,5,8 y cuando actualizo de nuevo me salen 4,2,9,2, pero cuando llamo la función a través de una variable, no se repiten los números aleatorios y funcionan perfectamente ¿A qué se debe esto? Por favor explicadme. Gracias desde ya. Les comparto el código.

<meta charset="UTF-8">


<input/>
<button>Confirmar</button>


<script>

    function aleatorio (){

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




    function sortearNumeros(cantidad){

        secretos = [];
        var contador = 1; 




        while (contador <= cantidad){

            var numeroAleatorio = aleatorio();
            var encontrado = false;


            for (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 entrada = document.querySelector("input");
    entrada.focus(); 


    function confirma (){

        var encontrado = false;

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


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


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


            }

        }            

        if(encontrado == false){


            alert("Usted erró mi estimado!");

        }    

        entrada.focus();
        entrada.value="";
    }

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


</script>
2 respuestas

Hola José como estas?, independientemente de como llames al método Math.random siempre va a generar números aleatorios, a veces pueden repetirse o a veces puede que sean todos diferentes. Saludos!

Buenos días. Sí, lo comprendo, lo que me percato es que cuando llamo a la función a través de una variable, el problema de repetir números dentro de la lista, se corrige tal y como lo explica el maestro, pero al yo llamarla directamente, aparecen números aleatorios repetidos dentro de la lista. Es lo que no comprendo sobre esto.