1
resposta

não entendi porque só mostra dois números no array

<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 numero = 1;

    var achou = false 

    while(numero <= quantidade ){

    var numeroAleatorio = sorteia();
        var achou = false 

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

    if(segredos [posicao] == numeroAleatorio ){ 

    achou = true 
    break;
    segredos.push(sorteia());

           }
      }

      if(achou == false){

      segredos.push(numeroAleatorio);
       numero++; 

      }

      numero++; 

           }

    return segredos; 

    }
    var segredos = sorteiaNumeros(3);



    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>

não entendi porque só mostra dois números no array

1 resposta

Remova o último numero++; pois esta incrementando duas vezes.

Outra coisa, formate o seu código (https://beautifier.io/) para que você possa entendê-lo.