0

我从 1 到 10 之间得到一个随机生成的数字getRandom(1,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;
}

});
4

1 回答 1

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.
于 2013-06-29T16:44:15.000 回答