Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou querendo fazer um array randômico que exiba somente 1 elemento por vez e que não se repita os que já foram mostrados até acabar, quando acabar de exibir todos os elementos, quando acabar colocar todos os elementos de novo no array e seguir exibindo um por vez randômicamente até acabar e assim sucessivamente.
Tenho o seguinte código que faz com que os elementos da array fiquem aleatórios, porém sempre repete algum que já foi exibido antes de ter mostrado todos.
function randOrd() {
return (Math.round(Math.random())-0.5);
}
var nome = Array();
nome[0] = "Carlos";
nome[1] = "João";
nome[2] = "Leo";
nome[3] = "Maria";
nome[4] = "Silvia";
nome.sort(randOrd);
alert(nome[0]);
Quem puder me ajudar agradeço
Gabriel,
Mais no meu caso preciso de apenas um, será que existe isso que estou querendo fazer?
A sugestão do Gabriel parece te atender. Como vc tentou ?
No seu caso, você está retornado um valor aleatíorioa, mas pode ocorrer repetições (que é o caso).
Ao invés de retornar apenas um valor aleatório, o ideal é randomizar os valores no array e então exibí-los em ordem.
Exatamente o que ocorre em ambos os links abaixo:
http://stackoverflow.com/questions/6274339/how-can-i-shuffle-an-array-in-javascript
http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array