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

Duvida em array

Pessoal boa noite, estou com duvida em comparar valores dentro de um array em java script. Por exemplo se eu crio um Math.round e utilizo uma variavel dentro de um for para ele guardar 6 numeros aleatorios, no caso eu não quero que estes valores sejam iguais, como eu faço a comparação, vou colocar um amostra do codigo aqui para ver se alguem entende melhor o que eu preciso, obrigado???

var sorteados = []; var meusNumeros = [];

for(var i = 0; i < 6; i++) {

var numeros = Math.round(Math.random() * 60);

if(numeros != sorteados[i]){ sorteados.push(numeros);

// aqui por exemplo eu quero que se ele ja tenha escolhido o numero 6 por exemplo, ele volte o for, no caso nao quero guardar numeros repetidos dentro do array }else{

i--; } }

3 respostas

Para cada número sorteado, dentro do seu for, você fazer algo assim:

while(sorteados.includes(numeroSorteado)) {
    numeroSorteado = Math.round(Math.random() * 60);
}

sorteados.push(numeroSorteado);

Você fez um while que deve rodar enquanto o sorteio retornar um número que já existe no array. Esse código também tem cara de ser recursivo, mas assim já funciona.

Segue exemplo do que o Alberto sugeriu.

var sorteados = [];

for(var i = 0; i < 6; i++) {
    var numeros = Math.round(Math.random() * 60);

    while(sorteados.includes(numeros)) {
        numeros = Math.round(Math.random() * 60);
    }

    sorteados.push(numeros);
}

console.log(sorteados);
solução!

E vc pode até iniciar a variável números fora do for. Já faz um Random ali e só mantém o while dentro do for.