Neste artigo você vai aprender a gerar vários números aleatórios sem repetição em JavaScript, utilizando os próprios recursos da linguagem
Fala programador(a), beleza? Bora aprender mais sobre geração de números aleatórios em JavaScript!
Primeiramente vamos criar uma lista ordenada, com o máximo de números aleatórios que precisamos gerar sem repetição
Veja como fica o código:
const maxNumbers = 10; let list = []; for (let i = 0; i < maxNumbers; i++) { list[i] = i + 1; } console.log(list); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Agora vamos embaralhar o número neste mesmo array, então os números não se repetirão
E teremos uma lista com números únicos
Veja como embaralhar a lista:
let randomNumber; let tmp; for (let i = list.length; i;) { randomNumber = Math.random() * i-- | 0; tmp = list[randomNumber]; // troca o número aleatório pelo atual list[randomNumber] = list[i]; // troca o atual pelo aleatório list[i] = tmp; } console.log(list); // 2, 3, 7, 1, 6, 8, 4, 5, 9, 10
Agora temos uma lista aleatório de x números, onde x foi definido na primeira parte do nosso algoritmo, pela variável maxNumbers
E é claro, o resultado da segunda parte pode variar pela quantidade de números e também pela aleatoriedade empregada no algoritmo
Porém é interessante como a solução é simples, apenas reposicionando os números de uma lista previamente criada
O nome desse algoritmo é Fisher-Yates, você pode saber mais clicando aqui
Ele é muito utilizado para reordenação aleatória de listas
Conclusão
Neste artigo vimos como gerar vários números aleatórios sem repetição com JavaScript
Utilizamos o algoritmo Fisher-Yates, que foi explicado acima
Desta forma geramos uma lista, que embaralha os seus números e gera uma lista de números aleatórios únicos
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube
muito obrigada!!
de nada =)