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

array não recebe valor

Estou quebrando a cabeça a um tempo e não consigo identificar meu erro, help!

<meta charset="UTF-8">

<input/> 
<button>Compare com o meu segredo</button>

<script>

    function aleatorio() {
        return Math.round(Math.random() * 10);
    }
    console.log
    function sorteia(quantidade) {

        var segredos = [];

        var numero = 1;

        while(numero <= quantidade) {
            var numeroaleatorio = sorteia();
            var achou = false;

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

                if(segredos[posição] == numeroaleatorio) {
                    achou = true;
                    break;

                }

            }


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


        }

        return segredos;

    }


    var segredos = sorteia(2);
    console.log(segredos);


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

    function verifica() {
        var achou = false;
        for(var posição = 0; posição < segredos.length; posição++) {

            if(input.value == segredos[posição]) {
        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>
6 respostas

Boa noite, Heitor! Como vai?

Algum erro é apresentado no console do navegador? Se sim, vc poderia copiar e colar ele aqui?

Contudo, já te deixo uma dica! Não é boa prática utilizar caracteres especiais para nomear elementos do seu código como variáveis ou funções!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Opa! Já fiz as correções sobre os caracteres especiais, e no console somente isso:


adivinha_mais.html:47 (2) [Array(0), Array(0)]0: []1: []length: 2__proto__: Array(0)
Navigated to file:///Users/heitormariano/Desktop/lo%CC%81gica/adivinha_mais.html

Como está o seu código atualmente, Heitor? Vc poderia colar aqui, por favor?

<meta charset="UTF-8">

<input/> 
<button>Compare com o meu segredo</button>

<script>

    function aleatorio() {
        return Math.round(Math.random() * 10);
    }
    console.log
    function sorteia(quantidade) {

        var segredos = [];

        var numero = 1;

        while(numero <= quantidade) {
            var numeroaleatorio = sorteia();
            var achou = false;

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

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

                }

            }


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


        }

        return segredos;

    }


    var segredos = sorteia(2);
    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 Heitor.

Segue os dois pontos de falha, comentados no código

<meta charset="UTF-8">

<input/> 
<button>Compare com o meu segredo</button>

<script>

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

    function sorteia(quantidade){

        var segredos = [];
        var numero = 1;

        while(numero <= quantidade){
            var numeroaleatorio = aleatorio(); // aqui voce colocou o proprio sorteia(); mas o aleatorio voce denominou de aleatorio();
            var achou = false;

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

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

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

        return segredos;
    }

    var segredos = sorteia(2);
    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"); // faltava os ;
        }

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

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

</script>

Espero ter te ajudado !

Opa, Heitor! Como vai?

A solução do Vagner está correta! Mas ficam aqui duas dicas, pessoal!

  1. Heitor, é sempre bom observar a indentação do código! Essa é uma boa prática que facilita na leitura do código e identificação de possíveis problemas!

  2. Vagner, no JS não é obrigatório o ponto e vírgula no final da linha! Contudo é uma boa prática sempre utilizá-lo!

Qualquer coisa é só falarem!

Grande abraço a todos e bons estudos, meus alunos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software