js動態(tài)生成唯一id的三種方法
一. 引入時間戳,生成可控長度的隨機(jī)數(shù)
隨機(jī)數(shù)長度控制,定義一個長度變量(length),生成可控長度的隨機(jī)數(shù):
Math.random().toString(36).substr(3,length)
引入時間戳:
Date.now().toString(36)
合在一起最終辦法:
genID(length){
return Number(Math.random().toString().substr(3,length) + Date.now()).toString(36);
}或參考下面的
<script>
/**
* 獲取當(dāng)前時間戳、生成唯一標(biāo)識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)前時間的毫秒值
var date = new Date().getTime()
//方法三Date.now()可以獲得當(dāng)前的時間戳
var date = Date.now()
//方法四valueOf()函數(shù)返回時間戳值
var data = (new Date()).valueOf()
//方法五將獲取時間方法對象轉(zhuǎn)化為一個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)
下面是一些補充
在 JavaScript 中,可以通過使用 Date 對象的 getTime 方法來生成一個毫秒級別的唯一 ID。具體示例如下:
let uniqueId = new Date().getTime();
console.log(uniqueId); // 輸出的結(jié)果類似于 1633067982824
如果需要生成更長的 ID,可以將該 ID 轉(zhuǎn)換為字符串,并在后面添上一個隨機(jī)數(shù)。示例如下:
let uniqueId = String(new Date().getTime()) + String(Math.floor(Math.random() * 1000));
console.log(uniqueId); // 輸出的結(jié)果類似于 1633067982824432
上述代碼將自動生成一個長度為 16 位的唯一 ID,其中前 13 位是時間戳,后 3 位是隨機(jī)數(shù)。
到此這篇關(guān)于js動態(tài)生成唯一id的兩種方法的文章就介紹到這了,更多相關(guān)js動態(tài)生成唯一id內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實現(xiàn)圖片元素轉(zhuǎn)BASE64編碼的簡單示例
在Web開發(fā)中,我們經(jīng)常需要將圖片轉(zhuǎn)換為Base64格式,以便在不依賴外部資源的情況下直接在HTML中使用,在這篇文章中,我將向您展示如何使用JavaScript將圖片元素轉(zhuǎn)BASE64編碼,需要的朋友可以參考下2023-12-12
深入剖析JavaScript中Geolocation?API的使用
這篇文章主要來和大家一起深入探討?JavaScript?的?Geolocation?API,看看它的強(qiáng)大之處以及如何在你的項目中應(yīng)用它,感興趣的可以了解下2024-03-03
javascript和jQuery實現(xiàn)網(wǎng)頁實時聊天的ajax長輪詢
在做網(wǎng)頁實時聊天的時候常常需要長輪詢,本文由于采用原生的JS及AJAX,所以簡單易懂,通過這篇文章就可以建立一個簡單的聊天室程序。2016-07-07
javascript數(shù)據(jù)結(jié)構(gòu)與算法之檢索算法
查找數(shù)據(jù)有2種方式,順序查找和二分查找。順序查找適用于元素隨機(jī)排列的列表。二分查找適用于元素已排序的列表。二分查找效率更高,但是必須是已經(jīng)排好序的列表元素集合2015-04-04

