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

Duvidas em entender ARRAY

<meta charset="UTF-8">

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

<script>

    var segredos = [5,7,10,2,3]; //declaracao da array entendo,sua funcionalidade e tal.

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

    function verifica() {

    var achou = false;

    for(var posicao = 0; posicao < segredos.length; posicao++) { // aqui tambem consigo entender o que acontece,varivel POSICAO  e usada para "descobrir" quantidade de elementos/posiçãoes da array SEGREDOS

        if(input.value == segredos[posicao]) { // porem aqui nao consigo entender de jeito nenhum o que acontece, variável SEGREDOS passa a receber como array POSICAO?como assim? essa variavel POSICAO só serve para contar certo?como ela sabe o que tem dentro do array? para fazer verificaçao de verdadeiro falso etc, na minha cabeça e assim::   POSICAO =0 ,depois++ POSICAO= 1,depois ++POSICAO=2  vai indo


            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

Oi Maria, tudo bem?

Para acessarmos um elemento de um array, nós acessamos pelo seu índice, ou seja, sua posição. Logo, para acessar o primeiro elemento desse array segredos, por exemplo, nós utilizamos: segredos[0], já que o index sempre começa em 0, e não em 1. O valor 5 seria retornado, já que é o primeiro elemento desse array.

Tendo isso em mente, é comum percorrer um array através de um laço de repetição, como o uso do for. Portanto, o for cria uma variável (posicao), que vai de 0 até o tamanho total do array segredos, ou seja, se o array segredos possui 5 elementos, então os índices precisam ser: 0, 1, 2, 3 e 4.

A cada iteração desse laço de repetição, a variável posicao corresponde ao índice do elemento do array. Ou seja, imaginando que estamos na primeira iteração (a primeira vez dentro desse laço de repetição), a variável posicao irá valer 0, logo, segredos[posicao] irá retornar 5, já que 5 é o elemento inicial desse array (o elemento no índice 0).

Nessa linha que você mencionou a dúvida, é uma verificação de que o que o usuário digitou no campo, é igual, ou não, a algum número de dentro do array.

Ou seja, imaginando que eu digitei 10 no campo de input. Na primeira vez que ele entrar nesse laço de repetição, a variável posicao irá valer 0, logo, segredos[posicao] irá valer 5. A verificação irá falhar, já que 10 é diferente de 5. Então, ele irá repetir novamente (até o laço de repetição finalizar). Agora, a variável posicao vale 1, logo, segredos[posicao] irá valer 7, já que é o 2º elemento do array. A verificação irá falhar novamente, já que 10 é diferente de 7. Porém, na 3a tentativa, a verificação irá funcionar, já que 10 é igual a 10.

A variável posicao é um contador, e nós utilizamos ela para acessar o índice do array, retornando o seu elemento.

Espero ter ajudado, bons estudos =) Qualquer outra dúvida me retorne!

solução!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Tentando explicar de forma simples. Um vetor é criado assim na memoria(imagem). O for vai percorrer as 5 posições começando na posição 0 ate posição 4. vamos supor que o valor do input é 10

posicao = 0:
segredos[0] = 5
if( 10 == 5) falso soma 1 na posicao e vai pro proximo.

posicao = 1:
segredos[1] = 7
if( 10 == 7) falso soma 1 na posicao e vai pro proximo.

posicao = 2:
segredos[2] = 10
if( 10 == 10) verdadeiro encerra o for.