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

Reabrindo a discurso do lenght

Segue o trecho:

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;
                           }

                     }

Digamos que na função sorteia números passei o parâmetro 3 então eu terei 3 números para comparar os valores.

Daí a var numeroAleatório pega um número entre 0 e 10. Se esse número for diferente de zero faço um loop e aí é que não entendi o que o código faz:

1° Parte não entendida:

Na primeira interação do While minha var segredos , até aqui é um array vazio com posição [0]. Daí meu for me diz o seguinte, se a variável posição, que é igual nesse primeiro momento a zero, for menor que a quantidade de elementos da minha variável segredos, que também é zero incremente posição.

2° Parte não entendida:

Segue as dúvidas no próximo trecho de código:

         if(segredos[posicao] == numeroAleatorio){

Aqui nessa primeira volta do While eu comparo a Var numero aleatório, que até aqui vai ter um valor, com minha array segredo na sua primeira posição que está em zero. Espero que tenha sido claro.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

Boa tarde, Anderson! Como vai?

Na primeira interação do While minha var segredos , até aqui é um array vazio com posição [0]. Daí meu for me diz o seguinte, se a variável posição, que é igual nesse primeiro momento a zero, for menor que a quantidade de elementos da minha variável segredos, que também é zero incremente posição.

Na realidade, a variável posicao só será incrementada ao final de cada iteração do for.

Aqui nessa primeira volta do While eu comparo a Var numero aleatório, que até aqui vai ter um valor, com minha array segredo na sua primeira posição que está em zero. Espero que tenha sido claro.

A cada iteração do for esse if vai verificar se o número aleatório gerado e armazenado na variável numeroAleatorio é igual a segredos[posicao]. Em caso positivo, isso significa que o número gerado já foi armazenado no array previamente!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Entendi que na primeira interação do While o código não entra dentro do for, pois posicao nesse momento não é menor que segredos, e sim igual, sendo assim ele não executa a verificação do número aleatório gerado comparando com segredos na posição zero do arra segredos. Apartir da segunda volta do while a brincadeira começa a funcionar como projetado. Obrigado.