欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript生成一個(gè)不重復(fù)的ID的方法示例

 更新時(shí)間:2019年09月16日 15:29:38   作者:alterem  
這篇文章主要介紹了JavaScript生成一個(gè)不重復(fù)的ID的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文介紹了JavaScript生成一個(gè)不重復(fù)的ID的方法示例,分享給大家,具體如下:

/**
 * 生成一個(gè)用不重復(fù)的ID
 */
function GenNonDuplicateID():String{
 
}

先看看下面的幾個(gè)方法

1.生成[0,1)的隨機(jī)數(shù)的Math.random,例如

//我這次運(yùn)行生成的是:0.5834165740043102
Math.random()

2.獲取當(dāng)前時(shí)間戳Date.now

//現(xiàn)在時(shí)間戳是1482645606622
Date.now() = 1521009303858

3.將10進(jìn)制轉(zhuǎn)換為其他進(jìn)制的字符串 Number.toString

//將1482645606622轉(zhuǎn)換成二進(jìn)制:10101100100110100100100001001000011011110
(1482645606622).toString(2)
//轉(zhuǎn)換成16進(jìn)制:159349090de MongDB中的ObjectID就是24位16進(jìn)制數(shù)
(1482645606622).toString(16);
//最大進(jìn)制支持轉(zhuǎn)為36進(jìn)制,使用字符是0-9a-z :ix48wvry
(1482645606622).toString(36)

GenNonDuplicateID的自我進(jìn)化

1.隨機(jī)數(shù)版本 v0.0.1

/**
 * 生成一個(gè)用不重復(fù)的ID
 */
function GenNonDuplicateID(){
 return Math.random().toString()
}

//生成一個(gè)類似 0.1283460319177394的ID
GenNonDuplicateID()

2.隨機(jī)數(shù)版本16進(jìn)制版本 v0.0.2

/**
 * 生成一個(gè)用不重復(fù)的ID
 */
function GenNonDuplicateID(){
 return Math.random().toString(16)
}

//函數(shù)將生成類似 0.c1615913fa915 的ID
GenNonDuplicateID()

3.隨機(jī)數(shù)版本36進(jìn)制版本 v0.0.3

/**
 * 生成一個(gè)用不重復(fù)的ID
 */
function GenNonDuplicateID(){
 return Math.random().toString(36)
}

//函數(shù)將生成類似 0.hefy7uw6ddzwidkwcmxkzkt9 的ID
GenNonDuplicateID()

4.隨機(jī)數(shù)版本36進(jìn)制版本 去掉"0." v0.0.4

/**
 * 生成一個(gè)用不重復(fù)的ID
 */
function GenNonDuplicateID(){
 return Math.random().toString(36).substr(3)
}

//函數(shù)將生成類似 8dlv9vabygks2cbg1spds4i 的ID
GenNonDuplicateID()

然而用一個(gè)隨機(jī)數(shù)作為ID,隨著使用次數(shù)的累積,必然會(huì)出現(xiàn)相同的兩個(gè)ID

5.引入時(shí)間戳 的36微進(jìn)制版本 v0.1.1

/**
 * 生成一個(gè)用不重復(fù)的ID
 */
function GenNonDuplicateID(){
 let idStr = Date.now().toString(36)
 idStr += Math.random().toString(36).substr(3)
 return idStr
}

//函數(shù)將生成類似 ix49sfsnt7514k5wpflyb5l2vtok9y66r 的ID
GenNonDuplicateID()

6.引入時(shí)間戳 的36微進(jìn)制版本 加入隨機(jī)數(shù)長(zhǎng)度控制 v0.1.2

/**
 * 生成一個(gè)用不重復(fù)的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. 引入時(shí)間戳 隨機(jī)數(shù)前置 36進(jìn)制 加入隨機(jī)數(shù)長(zhǎng)度控制 v0.1.3

/**
 * 生成一個(gè)用不重復(fù)的ID
 */
function GenNonDuplicateID(randomLength){
 return Number(Math.random().toString().substr(3,randomLength) + Date.now()).toString(36)
}
//GenNonDuplicateID()將生成 rfmipbs8ag0kgkcogc 類似的ID
GenNonDuplicateID()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript整除運(yùn)算函數(shù)ceil和floor的區(qū)別分析

    JavaScript整除運(yùn)算函數(shù)ceil和floor的區(qū)別分析

    這篇文章主要介紹了JavaScript整除運(yùn)算函數(shù)ceil和floor的區(qū)別分析,實(shí)例分析了ceil和floor函數(shù)的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • javascript快速排序算法詳解

    javascript快速排序算法詳解

    JavaScript實(shí)現(xiàn)的常見(jiàn)排序算法有:冒泡排序,選擇排序,插入排序,謝爾排序,快速排序(遞歸),快速排序(堆棧),歸并排序,堆排序。今天我們來(lái)詳細(xì)分析下快速排序算法
    2014-09-09
  • JavaScript 閉包深入理解(closure)

    JavaScript 閉包深入理解(closure)

    最近在網(wǎng)上查閱了不少Javascript閉包(closure)相關(guān)的資料,寫的大多是非常的學(xué)術(shù)和專業(yè)。對(duì)于初學(xué)者來(lái)說(shuō)別說(shuō)理解閉包了,就連文字?jǐn)⑹龆己茈y看懂。撰寫此文的目的就是用最通俗的文字揭開(kāi)Javascript閉包的真實(shí)面目。
    2009-05-05
  • ES6新增的math,Number方法

    ES6新增的math,Number方法

    ES6新增的math,Number方法,小編覺(jué)得非常不錯(cuò),需要的朋友參考下吧
    2017-08-08
  • JavaScript純前端實(shí)現(xiàn)語(yǔ)音播報(bào)和朗讀功能

    JavaScript純前端實(shí)現(xiàn)語(yǔ)音播報(bào)和朗讀功能

    這篇文章主要為大家詳細(xì)介紹了JavaScript純前端實(shí)現(xiàn)語(yǔ)音播報(bào)和朗讀功能的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • 用js編寫的簡(jiǎn)單的計(jì)算器代碼程序

    用js編寫的簡(jiǎn)單的計(jì)算器代碼程序

    這篇文章主要介紹了用js編寫的簡(jiǎn)單的計(jì)算器代碼程序,非常具有實(shí)用性,感興趣的小伙伴可以參考下
    2015-08-08
  • 淺談javascript的url參數(shù)parse和build函數(shù)

    淺談javascript的url參數(shù)parse和build函數(shù)

    下面小編就為大家?guī)?lái)一篇淺談javascript的url參數(shù)parse和build函數(shù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • webpack多入口多出口的實(shí)現(xiàn)方法

    webpack多入口多出口的實(shí)現(xiàn)方法

    這篇文章主要介紹了webpack多入口多出口的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • javascript Discuz代碼中的msn聊天小功能

    javascript Discuz代碼中的msn聊天小功能

    參考discuz的msn聊天功能代碼
    2008-05-05
  • bootstrap模態(tài)框消失問(wèn)題的解決方法

    bootstrap模態(tài)框消失問(wèn)題的解決方法

    這篇文章主要為大家詳細(xì)整理了bootstrap模態(tài)框消失不消失各種問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評(píng)論