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

[Dúvida] Manipulando Array

Gostaria de saber se eu poderia colocar o var segredos e o var input dentro de alguma função para que não haja informação solta no código, é possível? Coloquei o código abaixo dado no final da aula

meta charset="UTF-8">

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

<script>

    function sorteia () {

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

    }

    function sorteiaNumeros (quantidade) {

        var segredos = [];
        var numero = 1;

        while (numero <= quantidade) {

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

            if (numeroAleatorio !== 0) {
                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 = sorteiaNumeros(3); 

    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>
2 respostas
solução!

Oi, Rafaela! Tudo bem?

Você pode declarar variáveis dentro de uma função, entretanto, é necessário avaliarmos, inicialmente, se aquela variável deverá ser manipulada em algum outro local do nosso código, fora do escopo daquela função. Pois, as variáveis definidas dentro de uma função não podem ser acessadas de nenhum lugar fora dela e poderão ser manipuladas apenas dentro dela.

Entretanto, uma função pode acessar todas variáveis e funções definidas no escopo global.

Por isso, nesse caso, é preferencial a declaração dessas variáveis dentro do escopo global e não dentro de uma função, pois deverão ser utilizadas em outros locais do nosso código, não estando limitadas ao uso apenas em uma função específica.

Caso você não queira declarar as variáveis de forma "solta", podemos organizar nosso código colocando todas as nossas variáveis no seu inicio.

Espero ter ajudado, caso surja alguma dúvida estou a disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Muito obrigada Sarah, me ajudou bastante no entendimento!