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

[Duda] Me pueden explicar este codigo dado en clases, por fa?

Hola! Tengo un duda. No se por que no se repite los numeros aleatorios y el videos de la clase no me despeja la duda.

Me podrian ayudar, por favor?

<script>

    function aleatorio() {

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

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

        while(contador<=cantidad){
            var numeroAleatorio = aleatorio()
            var encontrado = false;
            for (var position = 0; position < secretos.length; position++) {

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

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

        }

        return secretos;

    }


    var secretos = sortearNumeros(4);

console.log(secretos);

Muchisimas gracias!

2 respuestas

MMM... TAMPOCO ENTIENDO TU PREGUNTA, PERO OBSERVO QUE TE FALTA COLOCAR UN console.log revisa el código y también te falta completar el programa, sin embargo, si quieres ver los numeros aleatorios abre el navegador en las herramientas del desarrollador para que observes que números arroja el programa de forma aleatoria pero tienes que colocar el console.log

Ojala me de a entender, el if que esta en el ciclo for es el que compara los numeros para que no se repita. Primero compara si el numero aleatorio es igual a secretos[posicion], el for hace que revise cada posicion del array, ahora si encuentra que es repetido cambia la variable encontrado a falso y rompe el ciclo for, esto hace que no pase por el segundo if ya que no se cumple la condicion de que la variable encontrado sea cierta y vuelve a comenzar el ciclo while, se repite el ciclo for y si no encuentra repetidos, nunca cambia la variable a falso por lo que se ejecuta el segundo if y es ahi donde se agrega el numero al array con el push.