Ir para conteúdo
Fórum Script Brasil
  • 0

Números aleatórios & Array


edergabriel

Pergunta

No código abaixo, a minha intenção era mostrar os cinco primeiros valores nesse array de forma aleatória. Não consegui, às vezes, ele falha no momento de não mostrar números que já foram selecionados e mostrar apenas as cinco primeiras seleções. Quem me ajudar ou tiver uma solução melhor, eu agradeço, quem não entendeu a minha dúvida é só perguntar.

No aguardo, obrigado!

<script language="JavaScript">
function random_imglink(){
        
  var myimages=new Array()
  
  var ry;
  
  var novory;
  
  myimages[0]="teste0"
  
  myimages[1]="teste1"
  
  myimages[2]="teste2"
  
  myimages[3]="teste3"
  
  myimages[4]="teste4"
  
  myimages[5]="teste5"
  
  myimages[6]="teste6"

         for(x=0; x<7; x++){
                 
                ry=Math.floor(Math.random()*myimages.length)
                myimages[x] = ry

                novory = Math.floor(Math.random()*myimages.length)
        
                for(z=0; z<7; z++){
                        
                        if(myimages[z] == novory) {
        
                        novory = Math.floor(Math.random()*myimages.length)
                        z=0;
                        }
        
                        
                }
        myimages[x] = novory;
        document.write(myimages[x]+ "<br />")

                
        }
}

  random_imglink()
  </script>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

// Um método extra para as suas arrays... guarde com carinho;)
Array.prototype.getRandom = function() { 
    var max = this.length;
    var i = Math.floor(Math.random()*max);
    return this[i];
};

function random_imglink(){
    // Incluindo as possibilidades
    var myimages=new Array();
    myimages.push("teste0");
    myimages.push("teste1");
    myimages.push("teste2");
    myimages.push("teste3");
    myimages.push("teste4");
    myimages.push("teste5");
    myimages.push("teste6");

    // sete para TRUE se a imagem puder aparecer mais de uma vez
    var podeRepetir = false;
    
    // Escolhando 5 imagens aletoriamente    
    var apenas5 = new Array();
    while (apenas5.length < 5) {
        var img = myimages.getRandom();
        var jaExiste = (apenas5.indexOf(img) >= 0);
        if (podeRepetir || !jaExiste) apenas5.push(img);
    }    
    alert(apenas5);
}

random_imglink();

Prontin =)

Editado por fiote
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...