生成唯一的随机数javascript

时间:2013-01-30 13:59:58

标签: javascript

我正在尝试获取随机唯一编号并将其分配给变量。例如:

var nums=[0,1,2,3,4,5,6,7];

然后我有8个变量,我希望每次刷新页面时都采用其中一个数字,也是唯一的。我不是很擅长Javascript,所以请帮忙。

5 个答案:

答案 0 :(得分:2)

如果号码只需要在客户端唯一,那就有可能。 您可以根据当前时间创建一个数字,例如:

var id = new Date().getTime();

但是,如果这个唯一ID对于每个客户端都必须是唯一的,那么作为OP状态中的注释,您将需要一个服务器端解决方案:

var id = "<?php echo uniqid() ?>";

答案 1 :(得分:1)

首先,要从数组中获取随机值,您可以这样做:

var nums = [0,1,2,3,4,5,6,7];
var num = Math.floor(Math.random() * nums.length);

alert(num);

如果你需要它是独一无二的,那么它取决于唯一应该是什么意思。如果你的意思是对于一个用户来说,它应该永远不会重复一个数字,直到它们都已经筋疲力尽,那么你可以使用cookie来跟踪已经显示的数字。

答案 2 :(得分:0)

 function randomVarGenerator()
    {
    var s4=function()
    {
       return Math.floor(Math.random(0,9)*10).toString();

    };
    return (S4() + S4() + S4() + S4()  + S4() + S4()+ S4() + S4());
    }
randomVarGenerator();

如果它生成uniqueString

 function randomVarGenerator()
    {
    var s4=function()
    {
       return Math.floor(Math.random() * 0x10000 /* 65536 */).toString(16);

    };
    return (S4() + S4() + S4() + S4()  + S4() + S4()+ S4() + S4());
    }

randomVarGenerator();

答案 3 :(得分:0)

我想这会对你有所帮助。 *首先,您应该创建一个包含数字的数组。 *然后你应该创建另一个数组 *然后从该数组中随机选取一个数字并将其放到另一个数组中 *之后从数字数组中删除拾取的元素。

function rand(n){

var numArr = new Array("0","1","2","3","4","5","6","7","8","9","10");


var pickArr = new Array(); 

var length=16;

for(var i=0;i<n;i++){
        var num=numArr[Math.floor((Math.random()*length))];
        pickArr[pickArr.length]=num
        length--;
        numArr.splice(findRank(numArr,num), 1);

    }


    return pickArr;
}

function findRank(seq,n){
    var cnt=0;
    var flag=true;
    for(var i=0;i<seq.length&&flag;i++){
        if(seq[i]==n)flag=false;
        else cnt++;
    }

    return cnt;
} 

答案 4 :(得分:0)

var n = 4, uniqueRandoms = [];
function makeUniqueRandom() {
    if (!uniqueRandoms.length) {
        for (var i = 1; i < n; i++) {
            uniqueRandoms.push(i); // generates [1,2,3,4]
        }
    }
    var index = Math.floor(Math.random() * uniqueRandoms.length),
        val = uniqueRandoms[index];
    uniqueRandoms.splice(index, 1);
    return val;
}

makeUniqueRandom(4); // use