【发布时间】:2020-10-28 01:52:39
【问题描述】:
我正在尝试在 javascript 中通用一个普遍唯一的字母数字字符串。我尝试使用 UUID,但格式不理想。目前我正在做以下事情:
Math.floor((Math.random() * Date.now())).toString(16).toUpperCase()
这会产生如下字符串:4198A8BEA4。这是所需的格式和相对长度。
我可以确定这将始终返回一个唯一的字母数字字符串吗?
如果是这样,我怎么能确定?
【问题讨论】:
-
你不能确定。
-
有可能一个随机数和一个时刻生成相同的字符串.....
-
你能解释一下为什么吗? @Pointy
-
当前时间戳和
.random()函数返回的值可能极不可能产生重复先前产品的产品,但这并非不可能。 -
旁注:使用 UUID 的全部意义在于,从统计上讲,两次生成相同 UUID 的概率实际上为零。对于 10 个字符的字符串,重复的概率要高得多(尽管仍然相当低)。
标签: javascript unique