如何使用meteor或javascript创建10位唯一值
我需要生成10个字符(字母和数字)的唯一代码来申请系统生成的礼品券。目前,我正在使用以下代码。但它包含13个数字如何使用meteor或javascript创建10位唯一值,javascript,meteor,Javascript,Meteor,我需要生成10个字符(字母和数字)的唯一代码来申请系统生成的礼品券。目前,我正在使用以下代码。但它包含13个数字 var today = new Date(); Number(today); 是否有其他方法可以创建10位数的唯一值来应用系统生成的礼品券。在任何时候都不应该相同。代码应该像meteor collection中的in_id一样生成。最好的方法是什么 在meteor中,它为记录生成一个唯一的id。像这样,我需要创建一个10位数的唯一值。您可以为它创建一个自定义javascript函数
var today = new Date();
Number(today);
是否有其他方法可以创建10位数的唯一值来应用系统生成的礼品券。在任何时候都不应该相同。代码应该像meteor collection中的in_id一样生成。最好的方法是什么
在meteor中,它为记录生成一个唯一的id。像这样,我需要创建一个10位数的唯一值。您可以为它创建一个自定义javascript函数,如下所示
function Unique()
{
var text = "";
var randstring= "0123456789";
for( var i=0; i < 10; i++ )
text += randstring.charAt(Math.floor(Math.random() * randstring.length));
return text;
}
函数唯一性()
{
var text=“”;
var randstring=“0123456789”;
对于(变量i=0;i<10;i++)
text+=randstring.charAt(Math.floor(Math.random()*randstring.length));
返回文本;
}
第一种方法:(不安全,但随机数)
var cache={};
函数getValue(){
var value=Math.floor(Math.random()*1000000000);//获取一个介于0和1000000000之间的随机数
value=('000000000'+rand).slice(-10);//使其长度为10位
return cache[value]==undefined?cache[value]=value:getValue();//如果以前没有返回过,则返回它,否则返回另一个数字
}
log(getValue());
log(getValue());
log(getValue());
log(getValue());
//…
以下是针对时间价值生成的非常简短、有效且安全的解决方案,它绝对是独一无二的:
var unique=new Date().valueOf();
console.log('具有13位数字'+唯一性);
console.log('10位'+字符串(唯一的).substring(3,13))代码>你的代码是否给你唯一的数字,但问题是让它只给你10个?真的吗?您创建了一个日期对象,然后构造了一个数字?这将如何给你一个独特的价值??向我们展示你的努力和代码。它应该在整个“一个会话”中是唯一的,还是在浏览器重新加载时也是唯一的?它应该是全局唯一的还是每个用户唯一的?为什么?数据库中的ID(这是个坏主意)?一般来说,唯一的方法是使用某种序列,一旦序列用尽。。。你有个问题。可以help@ThusilaBandara对但我建议你使用第二种方法,它更安全。我认为这只是一个循环。但这不适用于礼物voucher@ThusilaBandara它们是独一无二的。那有什么问题?