Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dificuldade para entender a função sorteiaNumeros

Estou com extrema dificuldade de entender como funciona a função abaixo. Já revi o vídeo algumas vezes, tentei ler, pesquisei aqui no fórum, fiz de tudo pra tentar não desistir mas ainda sim estou com bastante dificuldade nessa aula em específico.

function sorteiaNumeros(quantidade){

    var segredos = [];

    var numero = 1;

    while(numero <= quantidade){

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

        if(numeroAleatorio !== 0){

            // principalmente nessa parte. Não consigo entender como o for varre a lista de números.
            for(var posicao = 0; posicao < segredos.length; posicao++){

                // também não entendo a parte do segredos[posicao], especificamente falando nao entendo a função do [posicao]
                if(segredos[posicao] == numeroAleatorio){

                    achou = true;
                    break;
                }
            }

            if(achou == false){

                segredos.push(numeroAleatorio);
                numero++;

            }
        }        
    }

    return segredos;
}

Se alguém puder me esclarecer, ficarei muito feliz. Perguntar no fórum pra mim é o último recurso pq geralmente gosto de tentar me virar sozinho o máximo possível, mas dessa vez realmente não consegui.

1 resposta
solução!

Olá, Lucas.. Acho que sua dúvida está relacionada ao modo como os arrays funcionam. Vou tentar explicar com outras palavras, que talvez possam ser mais fáceis.

O array, também é chamado em Português de vetor. Para ser bem didático, imagine como o array fosse um trem inteiro, e cada um de seus vagões fossem as posições possíveis de serem ocupadas, isso quer dizer, cada índice dentro dos colchetes[]. Você também pode imaginar como se o array fosse uma fileira inteira de cadeiras uma atrás da outra e para saber o que está ocupando cada cadeira, precisa ir conferir de uma por uma. Usando o exemplo do trem ou das cadeiras, o "for" faz uma "varredura", procurando aquele determinado item, de vagão em vagão, ou de cadeira em cadeira. E como ele faz isso? Através de um índice! Que no caso do código é a tua variável chamada "posicao", indo de zero até o tamanho do teu vetor, ou array, chamado "segredos", sendo incrementada de 1 em 1. for(var posicao = 0; posicao < segredos.length; posicao++)

Dito isso, agora resta compreender que para fazer essa verificação, é feita a comparação, entre o conteúdo daquele elemento que está no array com a variável "numeroAleatorio" que está usando para que seja encontrada, ou seja, no seu código é aquela linha do if: if(segredos[posicao] == numeroAleatorio)

Espero ter ajudado!