2013-06-29 26 views
0

搜索數組我從getRandom(1,10)得到一個從10到10之間的隨機生成的數字,但我不想兩次相同的數字。
爲了防止這種情況發生,我將數字保存在數組used中。

現在我想檢查我得到的新號碼是否在該數組內。
如果不繼續,
如果是,則重新開始(取得新號碼等)。

我現在想念的是應該重新開始的部分。或者應該這樣工作?
搜索陣列的具體價值,並從

jQuery(document).ready(function($){ 

var i=0; 
while (i<21){ 

     var used = new Array(20); 
     for(a=0; a<20; a++) { 
      var number = getRandom(1, 20); 
      used[a] = number; 
     } 
     var tf = inArray(number,used); 

     //Check if number is inside the 
     if(tf==false){ 
      //If not 
      i++; 

     }else{ 
      //If it is 
      i--; 
     } 
} 

function inArray(Item,arr) { 
    for(p=0;p<arr.length;p++) { 
     if (arr[p]==Item) { 
      return true; 
     } 
    } 
    return false; 
} 

}); 
+1

如果您正在使用jQuery,爲什麼不使用jQuery方法$ .inArray()? –

+2

您可以將1-20放入數組中並隨機排序,然後從索引0中的該數組中繪製數字,每次遞增一次。其他SO問題中也有例子。 –

+0

不知道jQuery可以做到這一點。 –

回答

0
// create pool of numbers 
var pool = []; 
for (var i=1; i<=20; i++) 
    pool.push(i); 

// pop off a random element of the array 
var some_random_number = pool.splice(Math.floor(Math.random()*pool.length), 1)[0] 

// repeat until pool is empty.