我正在尝试获取随机唯一编号并将其分配给变量。例如:
var nums=[0,1,2,3,4,5,6,7];
然后我有8个变量,我希望每次刷新页面时都采用其中一个数字,也是唯一的。我不是很擅长Javascript,所以请帮忙。
答案 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