4
respostas

Segredos é uma array vazia, então como é possível percorrê-la?

Na function sorteiaNumeros(quantidade), o array var segredos = [] é um array vazia, então como o for consegue percorrâ-la?

function sorteiaNumeros(quantidade){
        var segredos = [];

        var numero = 1;

        while (numero <= quantidade){

            var numeroAleatorio = sorteia();
            var achou = false;

            for (var posicao = 0; posicao < segredos.length; posicao++){
                if(segredos[posicao] == numeroAleatorio){
                    achou = true;
                    break;
                }
            }
4 respostas

Marcus, não é possível.

Na vídeoaula, ele faz isso.

Marcus, no vídeo está diferente do código q vc colocou

var segredo=[] o for não faz nada e pula pula para o próximo comando que é o if

Depois com achou = false é feito segredo.push(numeroAleatorio)

Depois que é feito o push a array segredo não será mais vazia e o for vai pecorrer para ver se já existe.

Se não encontar o achou vai contiuar false e num novo item é inserido com segredo.push(numeroAleatorio)


    function sorteiaNumeros(quantidade) {

        var segredos = [];

        var numero = 1;

        while(numero <= quantidade) {

              var numeroAleatorio = sorteia();
              var achou = false;

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

                     if(segredos[posicao] == numeroAleatorio){
                           achou = true;
                           break;
                     }

              }

              if (achou == false) {
                     segredos.push(numeroAleatorio);
              }
              numero++;

        }

        return segredos;

    }


Obrigado, Luis.

Ainda assim, eu tô custando a entender essa parte da aula.

Tentei fazer junto com ele, mas meu código não gera o mesmo resultado que o dele:

<meta charset="uft-8">

<input />
<button>Clique para adivinhar.</button>

<script>

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

    function sorteiaNumeros(quantidade){
        var segredos = [];

        var numero = 1;
        while(numero <= quantidade){

            var numeroAleatorio = sorteia();

            if(numeroAleatorio !== 0){
                var achou = false;

                for (var posicao = 0; posicao < segredos.length; posicao++){
                    if (segredos[posicao] == numeroAleatorio){
                        achou = true;
                        break;
                    }
                }

                if (achou == false) {
                    segredos.push(sorteia());
                    numero++;
                }

            }

        }
    return segredos;
    }

    var numero = sorteiaNumeros(3);

    console.log(numero);


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

    function adivinhaNumero() {

        var achou = false;

        for (contador = 0; contador < numero.length; contador++) {
            if (input.value == numero[contador]) {
                alert("Você acertou!");
                input.value = "";
                input.focus();
                achou = true;
                break;
            }

        }
        if (achou == false) {

            alert("Você errou!");
            input.value = "";
            input.focus();
        }


    }

    var button = document.querySelector("button");
    button.onclick = adivinhaNumero;
</script>