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

Numeros continuam se repetindo no console.log

Olá pessoal!

Fiz a aula até a metade, acompanhando exatamente como o professor Flávio estava fazendo, porém, quando chega na metade, ele consegue aplicar a função sem repetir os números no "Console.log (segredos);", até esse momento, meu código está (ao menos quando eu conferi) exatamente igual o do professor, porém, o dele não está repetindo os números, e o meu continua a repetir... Poderiam me ajudar a encontrar o erro? já revisei algumas vezes, e não consegui distinguir o que fiz de certo ou errado. Desde já, agradeço a ajuda de todos!

(Lembrando que só assisti até a metade da aula, porém, como o do professor estava dando certo, e o meu não, achei estranho e decidi fazer a pergunta aqui no fórum.)

Segue o meu código:

<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;

        while (numero <= quantidade) {

            segredos.push (sorteia());
            numero++;
        }

        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>
4 respostas

Olá Felipe, boa tarde. Você teria como mandar o código completo aqui? Fica mais fácil pra identificar o problema.

Segue código completo:

<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;

        while (numero <= quantidade) {

            var numeroAleatorio = sorteia();

                if (numeroAleatorio !== 0) {

                     var achou = false;

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

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

                    }

                }

            }

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

        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>
solução!

Bom dia, Felipe Troque seu

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

para

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

lenght -> length Sempre o th no final. Normal, isso sempre acontece.

Nossa, mesmo revisando, algumas coisas passam batidas mesmo! Agradeço pela a ajuda pessoal, muito obrigado!