那么我们就来讲解一下JS动态生成唯一ID的三种方法。
1. 使用Math.random()
使用Math.random()方法可以生成一个随机数,因为它返回0到1之间的伪随机数,所以我们可以将其与当前的时间戳相乘,生成一个不太可能重复的唯一ID。
function generateUniqueID() {
let uniqueID = Math.floor(Math.random() * Date.now()).toString(36);
return uniqueID;
}
console.log(generateUniqueID());//e5qiktmb8r
2. 使用UUID
UUID是通用唯一识别码的缩写,使用UUID主要目的是为了让分布式系统中的节点能够彼此识别,而生成UUID时需要考虑各种因素,避免重复。因此,uuid的生成算法比随机数更复杂。通过引入UUID.js或者使用ES6的写法,我们可以很方便地使用它生成唯一的ID。
//使用uuid.js
const { v4: uuidv4 } = require('uuid');
function generateUniqueID() {
return uuidv4().replace(/-/g, ''); //去掉横线
}
console.log(generateUniqueID());//8d5aa024185946d4a3083b6f8992af50
//ES6
function generateUniqueID(){
let uuid = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
);
return uuid;
}
console.log(generateUniqueID());//d45568e0a85a44988c4c28af0356b2d1
3. 使用时间戳和计数器
这种方式可以说是基于时间戳和计数器实现的。我们可以使用下面的函数生成唯一ID:
var _idCounter = 0;
function generateUniqueID() {
var ts = new Date().getTime().toString();
var parts = ts.split("").reverse();
var id = "";
for(var i = 0; i < 5; ++i) {
var index = Math.floor(Math.random() * parts.length);
id += parts[index];
}
id += (++_idCounter);
return id;
}
console.log(generateUniqueID());//120807967512931
以上三种方法就是生成唯一ID的三种方法,根据你的需求选择适合你的方法即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js动态生成唯一id的三种方法 - Python技术站