生成唯一随机数javascript
我正在尝试获取随机唯一数并将其分配给变量。例如:生成唯一随机数javascript,javascript,Javascript,我正在尝试获取随机唯一数并将其分配给变量。例如: var nums=[0,1,2,3,4,5,6,7]; 然后我有8个变量,每次刷新页面时,我想取其中一个数字,也是唯一的。我对Javascript不是很在行,所以请帮忙。如果这个数字只需要在客户端是唯一的,这是可能的。 您可以根据当前时间创建一个数字,例如: var id = new Date().getTime(); 但是,如果此唯一ID需要对每个客户端都是唯一的,如OP状态中的注释,则需要服务器端解决方案: var id = "<?
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 id=”“;
如果号码只需要在客户端是唯一的,这是可能的。
您可以根据当前时间创建一个数字,例如:
var id = new Date().getTime();
但是,如果此唯一ID需要对每个客户端都是唯一的,如OP状态中的注释,则需要服务器端解决方案:
var id = "<?php echo uniqid() ?>";
var id=”“;
首先,要从数组中获取随机值,可以执行以下操作:
var nums = [0,1,2,3,4,5,6,7];
var num = Math.floor(Math.random() * nums.length);
alert(num);
如果你需要它是独一无二的,那么这取决于独一无二的含义。如果您的意思是,对于一个用户,在他们全部用完之前,它不应该重复一个数字,那么您可以使用cookie跟踪显示的数字。首先,要从数组中获取随机值,可以执行以下操作:
var nums = [0,1,2,3,4,5,6,7];
var num = Math.floor(Math.random() * nums.length);
alert(num);
function randomVarGenerator()
{
var s4=function()
{
return Math.floor(Math.random(0,9)*10).toString();
};
return (S4() + S4() + S4() + S4() + S4() + S4()+ S4() + S4());
}
randomVarGenerator();
如果你需要它是独一无二的,那么这取决于独一无二的含义。如果你的意思是,对于一个用户来说,它永远不应该重复一个数字,直到他们都筋疲力尽,那么你可以使用cookie来跟踪显示的数字
function randomVarGenerator()
{
var s4=function()
{
return Math.floor(Math.random(0,9)*10).toString();
};
return (S4() + S4() + S4() + S4() + S4() + S4()+ S4() + S4());
}
randomVarGenerator();
如果它正在生成唯一字符串
function randomVarGenerator()
{
var s4=function()
{
return Math.floor(Math.random() * 0x10000 /* 65536 */).toString(16);
};
return (S4() + S4() + S4() + S4() + S4() + S4()+ S4() + S4());
}
随机变量生成器()
如果它正在生成唯一字符串
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;
}
函数rand(n){
var numArr=新数组(“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”);
var pickArr=新数组();
变量长度=16;
对于(var i=0;i我想这将对您有所帮助。
*首先,您应该创建一个包含数字的数组。
*然后您应该创建另一个数组
*然后从该数组中随机选取一个数字,并将其放置到另一个数组中
*然后从数字数组中删除拾取的元素
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;
}
函数rand(n){
var numArr=新数组(“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”);
var pickArr=新数组();
变量长度=16;
对于(var i=0;ivar n=4,uniqueRandoms=[];
函数makeUniqueRandom(){
如果(!uniqueRandoms.length){
对于(变量i=1;i
var n=4,uniqueRandoms=[];
函数makeUniqueRandom(){
如果(!uniqueRandoms.length){
对于(变量i=1;i
JavaScript在这里帮不上忙。只有服务器端可以做你想做的事情。@VisioN可能会有一个新的JavaScript API来支持这一点。我不确定,但我想我不久前遇到过类似的事情。@ŠimeVidas,TBH我们可以使用本地存储,甚至cookies。但我还是会选择服务器端解决方案。你可以从JS来做。生成随机数r=nums[Math.floor(Math.random()*7)]
并每次将其附加到cookie中。@techfoobar我不认为Math.random()
符合真正的随机性。JavaScript在这里帮不上忙。只有服务器端可以做你想做的事情。@VisioN可能会有一个新的JavaScript API来支持这一点。我不确定,但我想我在不久前遇到过类似的情况。@ŠimeVidas,我们可以使用本地存储甚至cookies。但我会选择服务器端解决方案yway.你可以从JS中执行。生成随机数r=nums[Math.floor(Math.random()*7)]
并每次将其附加到cookie中。@techfoobar我不认为Math.random()
符合真正的随机数。谢谢你的回答,实际上我已经过期并创建了这个代码var a=Math.floor(Math.random()*6);var b=Math.floor(Math.random()*6);var c=Math.floor(Math.random()*6);var d=Math.floor(Math.random()*6);var e=Math.floor(Math.random()*6);var f=Math.floor(Math.random()*6);然后我做了一些比较,如果一些变量匹配到循环,直到它不匹配,然后再次分配给变量,但是这是一个很长而且错误的代码如果你连续多次按语法执行这个代码,你可能会遇到冲突。谢谢你的回答,实际上我已经过期并创建了这个代码var a=Math.floor(Math.random()*6);var b=Math.floor(Math.random()*6);var c=Math.floor(Math.random()*6);var d=Math.floor(Math.random()*6);var e=Math.floor(Math.random()*6);var f=Math.floor(Math.random()*6);然后我做了一些比较,如果一些变量匹配到循环,直到它不匹配,然后再次将其分配给变量,但是这是相当长且错误的代码。如果你按语法连续多次执行此代码,可能会发生冲突。这不能保证唯一性,而且我认为它不符合RFC这只是一个获取类似guid的数字的简单方法。这不能保证唯一性,而且我认为它也不符合RFC。这只是一个获取类似guid的数字的简单方法。