Número aleatório sem repetir em Javascript?

  • Autor Autor Fabián Rodríguez
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Fabián Rodríguez

Fabián Rodríguez

Lambda
Programador
Verificación en dos pasos activada
Hola.
Estoy intentando crear un código en JS que me permita generar números aleatorios pero sin repetir.
Sigo lo siguiente:

1. Declarar un array con los posibles valores a elegir para ir eliminándolos cuando se el random los genere.
2. Generar un número aleatorio.
3. Guardar el indice del número generado
4. Guardar en una variable el número con el índice elegido.
5. Borrar el número del índice (array).

Pero NO funciona. Hay números que se siguen repitiendo que muestran un "undefined" cuando se imprimen. ¿Alguna idea?


HTML:
var num = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; 
var random = Math.floor(Math.random()*num.length)
var indice = num.indexOf(random);				
var number = num[indice];				
num.splice(indice, 1);
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Hola [MENTION=1203]Fabián Rodríguez[/MENTION], para que te funcione usa la variable random como indice de esta manera:

Inserir CODE, HTML ou PHP:
var num = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25];
var indice = Math.floor(Math.random()*num.length);
var number = num[indice];
num.splice(indice, 1);
 
Hola [MENTION=1203]Fabián Rodríguez[/MENTION], para que te funcione usa la variable random como indice de esta manera:

Inserir CODE, HTML ou PHP:
var num = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25];
var indice = Math.floor(Math.random()*num.length);
var number = num[indice];
num.splice(indice, 1);

Funciona a la perfección. Mil gracias. De seguro esto también ayudará a los que lleguen por Google :fatigue:
 
Funciona a la perfección. Mil gracias. De seguro esto también ayudará a los que lleguen por Google :fatigue:

Soy de forobeta pero llegue de google jeje buscando esto! XD :encouragement:
 
Voltar
Topo