Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não sei pq nao funciona

<meta charset="UTF-8">
<input/>
<button>Descubra o número!</button>
<script>
    function sorteia() {
        return Math.round(Math.random() * 10);
    }


    function numSorte(quantidade){
        var segredos2 = [];
        var numero = 1;
        while(numSorte <= quantidade){
            segredos2.push(sorteia());
            numero++
        }
        return valores;
    }

    var valores = numSorte(3);

    console.log(sorteia());


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


    function resultado() {
        var encontrou = false;
        for (var local = 0; local < valores.length; local++) {
            if (input.value == valores[local]) {
            alert("Você Acertou!!!");
            encontrou = true;
            break;
            }
        }
        if (encontrou == false){
            alert("Você Errou!!")
        }
        input.value = "";
        input.focus();
    }

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

</script>
1 resposta
solução!

Olá Icaro, não funciona porque a variável valores está indefinida. Repare que no escopo de seu método numSorte(), valores não existe. E o erro acontece quando chamamos valores.length na funcção resultado().

Modifique seu método numSorte() para:

function numSorte(quantidade){
        var segredos2 = [];
        var numero = 1;
        while(numero <= quantidade){
            segredos2.push(sorteia());
            numero++
        }
        return segredos2;
    }

Agora a função retorna um array e tudo volta a funcionar. E não esqueça de trocar essa linha:

     while(numSorte <= quantidade){

por esta

     while(numero <= quantidade){

Espero ter ajudado e bons estudos!