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

Divergência do código no vídeo em relação à transcrição

No minuto** 16:24** temos que a var achou = false; está após o** if (numeroAleatorio !== 0) {** :

function sorteiaNumeros(quantidade) {

    var segredos = [];

    var numero = 1;

    while(numero <= quantidade) {

          var numeroAleatorio = sorteia();

          if (numeroAleatorio !== 0) {

** var achou = false;**

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

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

Contudo, na transcrição do exercício, temos a mesma variável FORA do if, diferente de como está no vídeo:

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;

Por favor, qual seria a versão CORRETA?

Adicionalmente, meu console.log no OPERA GX está mostrando os mesmos números ao invés de números randomizados... o que posso estar fazendo errado?

PS: Copiei e colei o código da transcrição e ainda assim deu errado no console.log do Opera... só funciona no console.log do Chrome?

1 resposta
solução!

Olá, Tatiane, tudo bem?

De fato, há essa divergência entre o vídeo e a transcrição, bem observado e obrigado por nos informar!

Mas não se preocupe, se você ler com bastante calma esse trecho do código, essa mudança não irá alterar seu funcionamento. Isso acontece porque a verificação do if (numeroAleatorio !== 0) não está influenciando a variável achou, e por isso não está havendo diferença entre o funcionamento dos dois códigos.

Ou seja, nenhum dos dois códigos está errado, nesse caso é apenas uma questão de preferência de onde declarar a variável achou.

Sobre o problema com os números sorteados... o seu problema é que os números sorteados continuam os mesmos, mesmo após atualizar a página? Ou os números estão vindo iguais a cada vez que você atualiza a página?

De qualquer forma, uma possível solução é atualizar sua página com Ctrl + F5, pois o arquivo javascript pode não estar sendo atualizado no navegador.

Fico no aguardo :)