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

Olá quando fui refazer para praticar algo deu errado, preciso de ajuda.

Meu console avisa um erro no 36 numeros.push, mas não estou entendendo.

<meta charset="UTF-8">

<input/> 
<button> Launch </button>

<script>

function sorteia() {

    return Math.round(Math.random() * 9 + 1)
}

function sorteiaNumeros(quantidade) {

    var numeros = [];

    var atual1 = 1;

    while(atual1 <= quantidade) {

        var numeroAleatorio = sorteia();

        var achou = false

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

            if(numeros[posicao] == numeroAleatorio) {

                achou = true;
                break;
            }
        }

        if(achou == false) {

            numeros.push(numeroAleatorio);
            atual1++;
        }
    }

    return numeros;
}

var numeros = sorteiaNumeros(5);

console.log(numeros);

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

function verifica() {

    var confirma = false;

    for(var atual = 0; atual <= numeros.length; atual++) {

        if(input.value == numeros[atual]) {

            alert("VOCE ACERTOU!");
            confirma = true;
            break;
        }
    }

    if(confirma == false) {

        alert("ERROU!");
    }

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

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

</script>
2 respostas
solução!

Olá, Ezequiel! Tudo certo?

No for você inseriu o incremento de numeros++, e o correto é passar a posicao++. Outro ponto de atenção é que você precisa colocar algumas operações entre parênteses para que elas sejam executadas primeiro, olha só no código:

<button> Launch </button>
<script>

function sorteia() {
    return Math.round(Math.random() * (9 + 1))
}

function sorteiaNumeros(quantidade) {

    var numeros = [];
    var atual1 = 1;

    while(atual1 <= quantidade) {

        var numeroAleatorio = sorteia();
        var achou = false

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

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

        if(achou == false) {
            numeros.push(numeroAleatorio);
            atual1++;
           }
         }

    return numeros;
}

var numeros = sorteiaNumeros(5);

console.log(numeros);

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

function verifica() {

    var confirma = false;

    for(var atual = 0; atual <= numeros.length; atual++) {

        if(input.value == numeros[atual]) {

            alert("VOCE ACERTOU!");
            confirma = true;
            break;
        }
    }

    if(confirma == false) {

        alert("ERROU!");
    }

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

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

</script>

Espero que tenha ajudado!

Bons estudos!

Olá, MUITOO OBRIGADO, apenas falta de atençãoo. hehe