在MongoDB中的ObjectID,可以理解为是一个不会重复的ID,这里有个链接http://www.jb51.net/article/101164.htm感兴趣可以去研究一下。
我今天要做的就是做一个不重复ID的生成器
/** * 生成一个用不重复的ID */ function GenNonDuplicateID():String{ }
2. 随机数版本16进制版本 v0.0.2
3.随机数版本36进制版本 v0.0.3
4.随机数版本36进制版本 去掉"0." v0.0.4
然而用一个随机数作为ID,随着使用次数的累积,必然会出现相同的两个ID
5.引入时间戳 的36微进制版本 v0.1.1
6.引入时间戳 的36微进制版本 加入随机数长度控制 v0.1.2
/** * 生成一个用不重复的ID */ function GenNonDuplicateID(randomLength){ let idStr = Date.now().toString(36) idStr += Math.random().toString(36).substr(3,randomLength) return idStr } // GenNonDuplicateID(3) 将生成类似 ix49wl2978w 的ID GenNonDuplicateID(3)
这样生成的ID前面几位总是相同,看着不爽,于是再改改
7. 引入时间戳 随机数前置 36进制 加入随机数长度控制 v0.1.3
/** * 生成一个用不重复的ID */ function GenNonDuplicateID(randomLength){ return Number(Math.random().toString().substr(3,randomLength) + Date.now()).toString(36) } //GenNonDuplicateID()将生成 rfmipbs8ag0kgkcogc 类似的ID GenNonDuplicateID()
以上所述是小编给大家介绍的JS如何生成一个不重复的ID的函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!