我正在尝试获取随机唯一编号并将其分配给变量。例如:
var nums=[0,1,2,3,4,5,6,7];
然后我有 8 个变量,我想在每次刷新页面时取其中一个数字,而且也是唯一的。我不是很擅长 Javascript,所以请帮忙。
我正在尝试获取随机唯一编号并将其分配给变量。例如:
var nums=[0,1,2,3,4,5,6,7];
然后我有 8 个变量,我想在每次刷新页面时取其中一个数字,而且也是唯一的。我不是很擅长 Javascript,所以请帮忙。
如果数字只需要在客户端是唯一的,这是可能的。您可以根据当前时间创建一个数字,例如:
var id = new Date().getTime();
但是,如果这个唯一 ID 需要对每个客户端都是唯一的,就像您的 OP 状态中的注释一样,您将需要一个服务器端的解决方案:
var id = "<?php echo uniqid() ?>";
首先,要从数组中获取随机值,您可以这样做:
var nums = [0,1,2,3,4,5,6,7];
var num = Math.floor(Math.random() * nums.length);
alert(num);
如果您需要它是唯一的,那么这取决于唯一应该意味着什么。如果您的意思是对于一个用户,在他们都用尽之前永远不要重复一个数字,那么您可以使用 cookie 来跟踪已显示的数字。
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
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());
}
随机变量生成器();
我想这会对你有所帮助。* 首先你应该创建一个包含数字的数组。* 然后你应该创建另一个数组 * 然后从这个数组中随机选择一个数字并将其放置到另一个 * 之后从数字数组中删除选择的元素。
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;
}