Javascript 的 Math.random() 是否会生成一个将来不会重复的唯一数字?

KT *_*T B 2 javascript

我需要一个随机数,我将每个记录存储在数据库中,并且(生成的随机数)将来也不应该重复。那么 Math.random() 函数对此有好处吗?

提前致谢

Dro*_*out 8

随机是随机的,从统计上看,它会在未来的某个地方重复出现。您可以做的是将一些独特的内容与随机部分结合起来 - 例如,将unix 时间戳与随机数一起使用。

function getRand(){
    return new Date().getTime().toString() + Math.floor(Math.random()*1000000);
}
Run Code Online (Sandbox Code Playgroud)


Nin*_*igi 5

Math.random()不会给你一个唯一的编号,一般它甚至不会给你一个真正的随机数。

您可以尝试使用基于日期时间的随机算法,或者选择一个随机数,然后检查它是否已经在您的数据库中,但这两种方法都不是 100% 保存。几乎只有一种方法可以确保您存储的数字是唯一的,这在数据库级别。