Javascriptle kodlanması gereken küçük bir resim galerisi yaparken karşılaştım bu sorunla. Rastgele sayılar seçip, resimleri göstermeliydim. Fakat seçtiğim sayılar birbirinden farklı olmalıydı. Hazır kodlardan verim alamayınca, kendim yazdım. Sizlerle paylaşmak istedim.
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 | 26 | 27 |
|
//numArr, rastgele seçim yapacağımız sayıların bulunduğu dizi
| //pickArr, seçtiğimiz sayıların depolanacağı dizi
| //sibelakyigit.com
| var numArr=new Array();
| var pickArr = new Array();
| //1 den 60 a kadar sayıları numArr dizisine atıyoruz
| //isterseniz burada farklı değerler içeren bir dizi de oluşturabilirsiniz
| //ardışık sayılar olmak zorunda değil.
| for (var i=1;i<=60;i++){ numArr[i-1]=i;}
|
| //pickNums, rastgele birbirinden farklı sayı seçme fonksiyonu
| function pickNums(nums){
| for (i=1;i<=nums;i++){//rastgele sayımızı seçiyoruz.
| var currNum = Math.floor(Math.random()*numArr.length);
| //seçilen sayıyı dizin indisi olarak kullanıyoruz.
| pickArr[count]=numArr[currNum];
| //seçtiğimiz indisteki değeri en sondaki indisteki değerle yer değiştiriyoruz
| numArr[currNum]=numArr[numArr.length-1];
| //en sondaki indisi siliyoruz, seçtiğimiz indisteki değer listeden yok oluyor.
| numArr.pop();
| }
| }
|
| pickNums(5); // numArr dizisinden rastgele farklı 5 sayı seç
| for (i=0;i<5;i++){
| alert(pickArr[i]);
| } |
|