Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Javascript Random gelen sayının tekrar gelmemesi?

Arkadaşlar şöyle bir sorum var. Şimdi jQuery ile etiketleme olayını ypmak istiyorum
 var etiketler = $(".masterTags"); //Etiketlerin olduğu anchorlar <a>
    var yeniEtiketOlustur = ""; //anchorları tekrar oluşturucam..
    var stiller = new Array("stil1", "stil2", "stil3", "stil4", "stil5", "stil6", "stil7", "stil8", "stil9", "stil10"); // anchorlara yeni stiller eklicem.. 



Random sınıfıyla rastgele sayı üretip array ler içindeki o rakama denk gelen stili uyguluyabiliyorum ancak aynı sayının gelmesini engelleyemedim bi türlü.. aynı sayıyı indexOf ile kontrol edip yeni sayı ürettiriyorum üstelik 4 kez bu kontrolü yaptırmama rağmen gidiyo aynı sayıyı bulabiliyo tekrar :D Bana bi çözüm önerebilirmisiniz? tekrar gelmesin istiyorum
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • psygnosis adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    33 cevap - 159 soru
    soruyu sorduktan sonra cevabı kendi bulmamdan nefret ediyorum :) bari cevabı yazyımda faydalı olsun :)

       var sayilar = new Array();
       
        for (var i = 0; i < etiketler.length; i++) {  //etiketler etiketlerin oldugu dizi.. kendiniz oluşturabilirsiniz ya da etiketler veri tabanından geliyosa  var etiketler=$(".etiketclassi"); şeklinde alabilirsiniz.
            var randomnumber = Math.floor(Math.random() * 11); //0ile10 arası rakam
            
            if (sayilar.indexOf(randomnumber)==-1) { // dizideki indexine bakıyorum -1 ise yani yoksa 
            
                sayilar.push(randomnumber);// diziye ekliyorum
            }
            else { //varsa i'yi 1 düşürüp başa döndüp yine rakam üretiyorum.. böylece aynı rakam gelse bile başa dönüp yine rakam üretecek!
                i--;
            }
     
        }
    


    kolay gelsin!

Cevaplar

Hiç cevap bulunamadı.