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

O código continua repetindo os números do array

<meta charset="UTF - 8">

<input/>
<button>Simule aqui</button>

<script>

var input = document.querySelector("input")
var button = document.querySelector("button")

function sorteia() {

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

function sorteiaNúmeros(quantidade) {

    var númerosSorteados = []
    var numero = 1

    while(numero <= quantidade) {

        var numeroAleatório = sorteia()
        var achou = false        

        if(numeroAleatório !== 0) {

            for(var posicão = 0; posicão < númerosSorteados.legth; posicão ++) {

                if(númerosSorteados[posicão] == numeroAleatório) {

                achou = true
                break;
                } 
            }

        if(achou == false) {

            númerosSorteados.push(numeroAleatório)
            numero++;
        }
        }
    }

    return númerosSorteados

}

var númerosSorteados = sorteiaNúmeros(4)
console.log(númerosSorteados)

function verifica() {

    var achou = false

    for(var posição = 0;posição < númerosSorteados.length; posição++) {

        if(input.value == númerosSorteados[posição]) {
         achou = true
        alert("Parabéns, você acertou")
        break;

        }
    }

    if(achou == false) {

        alert("Você errou")
    }

    input.value = "";
    input.focus();

}

button.onclick = verifica;

</script>
2 respostas
solução!

Gabriel,

quis dizer que dentre os 4 números sorteados podiam aparecer alguns repetidos? Se for isto, o problema é a palavra length escrita errada em:

for(var posicão = 0; posicão < númerosSorteados.legth; posicão ++) {

Mas espere. Antes de corrigir só isto, atente às seguintes recomendações, porque seu código tem vários problemas relativamente 'graves', apesar de conseguir ter feito ele funcionar.

Nunca use acentos e cedilhas nos nomes de variáveis e funções, porque vai ter problemas em saber qual nome deu. Seu código está recheado de posicão/posição/posicao ou numero/número o que vai lhe dar muita dor de cabeça (se já não deu). Então procure padronizar como todos os outros, e não usar acentos e cedilhas.

Há várias linhas sem finalização com ponto e vírgula, o que neste caso foi nada grave, mas num projeto futuro pode lhe causar problema pra achar o erro.

E por útlimo e menos grave, a tag

<meta charset="UTF-8">

Procure escrevê-la assim, sem os espaços. Siga estas boas práticas de programação, e evitará problemas.

Boa sorte, e bons estudos.

<meta charset="UTF-8">

<input/>
<button>Simule aqui</button>

<script>

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

function sorteia() {

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

function sorteiaNumeros(quantidade) {

    var sorteiaNumeros = [];
    var numero = 1;

    while(numero <= quantidade) {

        var numeroAleatorio = sorteia();
        var achou = false;       

        if(numeroAleatorio !== 0) {

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

                if(sorteiaNumeros[posicao] == numeroAleatorio) {

                    achou = true;
                    break;
                } 
            }

            if(achou == false) {

                sorteiaNumeros.push(numeroAleatorio);
                numero++;
            }
        }
    }

    return sorteiaNumeros;

}


function verifica() {

    var achou = false;

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

        if(input.value == sorteiaNumeros[posicao]) {
            achou = true;
            alert("Parabéns, você acertou");
            break;
        }
    }

    if(achou == false) {

        alert("Você errou");
    }

    input.value = "";
    input.focus();

}

var sorteiaNumeros = sorteiaNumeros(4);
console.log(sorteiaNumeros);

button.onclick = verifica;

</script>

Valeu, me ajudou muito. Confesso que tive muita dificuldade mesmo.