最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2019年09月16日 15:29:38   作者:alterem  
這篇文章主要介紹了JavaScript生成一個(gè)不重復(fù)的ID的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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ù)長度控制 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ù)長度控制 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將普通數(shù)字轉(zhuǎn)換為帶有千分位分隔符格式的多種實(shí)現(xiàn)方法

    利用JavaScript將普通數(shù)字轉(zhuǎn)換為帶有千分位分隔符格式的多種實(shí)現(xiàn)方法

    如何利用 JavaScript 將普通數(shù)字轉(zhuǎn)換為帶有千分位分隔符的格式,我們將介紹多種方法,包括使用內(nèi)置的 toLocaleString() 方法、Intl.NumberFormat 對(duì)象以及自定義函數(shù)來實(shí)現(xiàn)數(shù)字格式化,需要的朋友可以參考下
    2023-12-12
  • List the Codec Files on a Computer

    List the Codec Files on a Computer

    List the Codec Files on a Computer...
    2007-06-06
  • 詳解iframe與frame的區(qū)別

    詳解iframe與frame的區(qū)別

    Frame與Iframe兩者可以實(shí)現(xiàn)的功能基本相同,不過Iframe比Frame具有更多的靈活性,通過本文給大家詳解細(xì)節(jié)iframe與frame的區(qū)別,對(duì)iframe與frame的區(qū)別相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • 理解JavaScript中Promise的使用

    理解JavaScript中Promise的使用

    這篇文章主要為大家介紹了JavaScript中Promise的使用,本文先介紹 Promises 相關(guān)規(guī)范,然后再通過解讀一個(gè)迷你的 Promises 以加深理解,感興趣的小伙伴們可以參考一下
    2016-01-01
  • JavaScript中常用的3種彈窗(警告框、確認(rèn)框、提示框)

    JavaScript中常用的3種彈窗(警告框、確認(rèn)框、提示框)

    JavaScript提供了幾種常用的彈窗方法,用于與用戶進(jìn)行交互或顯示提示消息,這篇文章主要給大家介紹了關(guān)于JavaScript中常用的3種彈窗的相關(guān)資料,分別包括警告框、確認(rèn)框、提示框,需要的朋友可以參考下
    2023-09-09
  • 常用原生js自定義函數(shù)總結(jié)

    常用原生js自定義函數(shù)總結(jié)

    下面小編就為大家?guī)硪黄S迷鷍s自定義函數(shù)總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • 一段非常簡(jiǎn)單的js判斷瀏覽器的內(nèi)核

    一段非常簡(jiǎn)單的js判斷瀏覽器的內(nèi)核

    先說明,此處的方法是說超級(jí)簡(jiǎn)單的方法,不是指代碼超級(jí)少,而是用非常簡(jiǎn)單的知識(shí)點(diǎn),只要懂得怎么寫JavaScript的行內(nèi)樣式就可以判斷。
    2014-08-08
  • 詳解Javascript百度地圖接口開發(fā)文檔中的類和方法

    詳解Javascript百度地圖接口開發(fā)文檔中的類和方法

    最近在工作中在用laravel框架仿寫?zhàn)I了么外賣商城,于是學(xué)習(xí)了一下有關(guān)地圖接口相關(guān)的知識(shí),以下是百步地圖接口開發(fā)文檔的一些類和方法的使用,需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • JavaScript數(shù)組去重算法實(shí)例小結(jié)

    JavaScript數(shù)組去重算法實(shí)例小結(jié)

    這篇文章主要介紹了JavaScript數(shù)組去重算法,結(jié)合實(shí)例形式總結(jié)分析了JavaScript數(shù)組去重相關(guān)的讀寫、遍歷、比較、排序等操作及算法改進(jìn)相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • 10個(gè)很少使用的JavaScript?Console方法分享

    10個(gè)很少使用的JavaScript?Console方法分享

    你一定聽說過?console.log()?,而且可能一直在使用它,在本文中,我們將探討一些最有用的控制臺(tái)方法,以及它們?cè)跀?shù)據(jù)可視化、調(diào)試等方面的用途,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-09-09

最新評(píng)論

磴口县| 岳阳县| 克拉玛依市| 保定市| 佛教| 安化县| 普格县| 班玛县| 澄城县| 双城市| 即墨市| 宜兴市| 林西县| 达日县| 沾益县| 鄄城县| 莱州市| 清流县| 通榆县| 伊吾县| 堆龙德庆县| 丰台区| 修文县| 昌邑市| 买车| 五指山市| 上蔡县| 承德县| 三门峡市| 满城县| 恩施市| 巴林左旗| 浪卡子县| 泸溪县| 阿合奇县| 成都市| 兰坪| 肥东县| 清水县| 西乌珠穆沁旗| 额敏县|