js動(dòng)態(tài)生成唯一id的三種方法
一. 引入時(shí)間戳,生成可控長度的隨機(jī)數(shù)
隨機(jī)數(shù)長度控制,定義一個(gè)長度變量(length),生成可控長度的隨機(jī)數(shù):
Math.random().toString(36).substr(3,length)
引入時(shí)間戳:
Date.now().toString(36)
合在一起最終辦法:
genID(length){ return Number(Math.random().toString().substr(3,length) + Date.now()).toString(36); }
或參考下面的
<script> /** * 獲取當(dāng)前時(shí)間戳、生成唯一標(biāo)識(shí)id, 以及常見方法。 * **/ // 方法一傳值轉(zhuǎn)換,注意格式 var date = Date.parse(new Date()) console.log(date); // 1656581121000 // //Date.parse("2022/6/30 10:05") 或者 Date.parse("2022-6-30 10:05") var date = Date.parse("2022-6-30 10:05:50") //方法二通過原型方法直接獲得當(dāng)前時(shí)間的毫秒值 var date = new Date().getTime() //方法三Date.now()可以獲得當(dāng)前的時(shí)間戳 var date = Date.now() //方法四valueOf()函數(shù)返回時(shí)間戳值 var data = (new Date()).valueOf() //方法五將獲取時(shí)間方法對象轉(zhuǎn)化為一個(gè)number類型的數(shù)值 var data = Number(new Date()) </script>
二. JS 生成隨機(jī)
如:07854BB7-6572-496E-918B-81115BCF396E
getUuid () { var s = []; var hexDigits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" for (var i = 0; i < 36; i++) { s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1) } s[14] = "4" s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1) s[8] = s[13] = s[18] = s[23] = "-" let uuid = s.join("") return uuid }
三、ID生成器NanoID
2.1-安裝
npm i nanoid
2.2-使用
import {nanoid} from 'nanoid'; let idA = nanoid() //=> "V1SyGzR8_Z5jdHd8B-myT" // 也可以指定生成字符串的長度 let idB = nanoid(10)
下面是一些補(bǔ)充
在 JavaScript 中,可以通過使用 Date 對象的 getTime 方法來生成一個(gè)毫秒級(jí)別的唯一 ID。具體示例如下:
let uniqueId = new Date().getTime();
console.log(uniqueId); // 輸出的結(jié)果類似于 1633067982824
如果需要生成更長的 ID,可以將該 ID 轉(zhuǎn)換為字符串,并在后面添上一個(gè)隨機(jī)數(shù)。示例如下:
let uniqueId = String(new Date().getTime()) + String(Math.floor(Math.random() * 1000));
console.log(uniqueId); // 輸出的結(jié)果類似于 1633067982824432
上述代碼將自動(dòng)生成一個(gè)長度為 16 位的唯一 ID,其中前 13 位是時(shí)間戳,后 3 位是隨機(jī)數(shù)。
到此這篇關(guān)于js動(dòng)態(tài)生成唯一id的兩種方法的文章就介紹到這了,更多相關(guān)js動(dòng)態(tài)生成唯一id內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript獲取網(wǎng)頁中指定節(jié)點(diǎn)的父節(jié)點(diǎn)、子節(jié)點(diǎn)的方法小結(jié)
如何獲取要更新的這些元素呢?用JavaScript獲取這些節(jié)點(diǎn)的方法有很多種,下面是總結(jié)的一些方法,感興趣的朋友可以參考下哈2013-04-04JavaScript關(guān)于某元素點(diǎn)擊事件的監(jiān)聽和觸發(fā)
本文主要介紹了JavaScript關(guān)于某元素點(diǎn)擊事件的監(jiān)聽和觸發(fā),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07微信小程序scroll-view實(shí)現(xiàn)滾動(dòng)穿透和阻止?jié)L動(dòng)的方法
這篇文章主要介紹了微信小程序scroll-view實(shí)現(xiàn)滾動(dòng)穿透和阻止?jié)L動(dòng)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08原生JS+CSS實(shí)現(xiàn)炫酷重力模擬彈跳系統(tǒng)的登錄頁面
今天小編給大家分享基于原生JS實(shí)現(xiàn)一個(gè)炫酷的登錄頁面,實(shí)現(xiàn)效果有點(diǎn)像重力模擬彈跳系統(tǒng),效果非常棒,需要的朋友參考下實(shí)現(xiàn)代碼吧2017-11-11JS實(shí)現(xiàn)拖動(dòng)滾動(dòng)條評(píng)分的效果代碼分享
本文給大家基于js實(shí)現(xiàn)拖動(dòng)滾動(dòng)條評(píng)分效果,在項(xiàng)目開發(fā)中經(jīng)??梢杂玫降模蠹铱梢愿有枰m當(dāng)?shù)奶砑有薷?,對js評(píng)分效果感興趣的朋友一起看看吧2016-09-09Javascript基礎(chǔ)知識(shí)盲點(diǎn)總結(jié)之函數(shù)
函數(shù)是由事件驅(qū)動(dòng)的或者當(dāng)它被調(diào)用時(shí)執(zhí)行的可重復(fù)使用的代碼塊。這篇文章主要介紹了Javascript基礎(chǔ)知識(shí)盲點(diǎn)總結(jié)之函數(shù)的相關(guān)資料2016-05-05