在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的函數,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!