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

Manipulando Array - Continua repetindo números

Fala galera, sou novo por aqui e estou com uma dúvida ..esse código ainda repete numero na "array" segredos ..podem me ajudar?

<meta charset="utf-8">

<input/>
<button>COMPARE</button>

<script>

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

    function sorteiaNumero(quantidade){
        var segredos = [];
        var contador = 1;

        while (contador <= quantidade){
            var numeroSorteado = sorteia();
            var numero = false;

            if (numeroSorteado !== 0){
                for(var posicao = 0; posicao < segredos.length; posicao++){
                    if (segredos[posicao] == numeroSorteado){
                        numero == true;
                        break;
                    }
                }
                if (numero == false){
                    segredos.push(numeroSorteado);
                    contador++; 
                }
            }
        }

        return segredos;
    }

    var segredos = sorteiaNumero(4);
    console.log(segredos);

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

    function verifica(){
        var chuteCerto = false;
        for (var posicao = 0; posicao < segredos.length; posicao++){
            if (input.value == segredos[posicao]){
                alert("Você ACERTOU!");
                chuteCerto = true;
                break;
            } 
        }
        if (chuteCerto == false){
            alert("Você ERROU!")
        }
        input.value ="";
        input.focus();
    }

    var button = document.querySelector("button");
    button.onclick = verifica;


</script>
2 respostas
solução!

Olá Michael, tudo bem com você?

Você cometeu um pequeno erro na hora de colocar a variável numero para true, veja:

if (segredos[posicao] == numeroSorteado){
            numero == true;
            break;
}

Aqui na verdade você acabou fazendo uma comparação :)

Na verdade veria ser:

numero = true;
break;

De resto está tudo certo e tera os números gerados sem repetição!

Abraços e Bons Estudos!

Valeu Geovani, agora deu certo! Estou começando, tenho que aprender a revisar mais ..mas vamos seguindo =)