Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida

Por que ele está gerando apenas 4 números se eu coloquei 5 dentro da função sorteiaNumeros? E se eu colocar posicao = 1 ele nunca gera o número 0. Isso faz a regra do !== ser desnecessária?

O que estou fazendo de errado?

<meta charset="UTF-8">

<input/>
<button>Compare com o meu segredo</button>


<script>
    function sorteia() {


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

    function sorteiaNumeros(quantidade) {

        var segredos = []
        var contador = 1;

        while(contador < 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);    
            contador++;
            }


        }

        return segredos;

    }

    var segredos = sorteiaNumeros(5);

    console.log(segredos);

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

    function verifica() {

        var achou = false;

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

            if (input.value == segredos[posicao]) {


                alert("Você acertou!");
                achou = true;
                break;

            }

            }

            if(achou == false) {

            alert("Você errou. ")
            }


            input.value = ""
            input.focus();
        }
        var button = document.querySelector("button");
        button.onclick = verifica;




</script>
2 respostas
solução!

Oi Vitor tudo bem?

Para funcionar o código você deve usar menor ou igual nessa linha.

        while(contador <= quantidade){

Posicao tem que ser igual a 0 mesmo para funcionar porque um vetor (array) tem a sua primeira posição com indíce 0 mesmo.

Espero ter ajudado!!!

Olá Vitor, tudo bem?

Sua dúvida foi esclarecida?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software