js动态生成唯一id —— 三种方法

js动态生成唯一id —— 三种方法

一. 引入时间戳,生成可控长度的随机数

随机数长度控制,定义一个长度变量(length),生成可控长度的随机数:

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);

}

或参考下面的

二. JS 生成随机

如: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

1.安装

npm i nanoid

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); // 输出的结果类似于 1633067982824

如果需要生成更长的 ID,可以将该 ID 转换为字符串,并在后面添上一个随机数。示例如下:

let uniqueId = String(new Date().getTime()) + String(Math.floor(Math.random() * 1000));

console.log(uniqueId); // 输出的结果类似于 1633067982824432

上述代码将自动生成一个长度为 16 位的唯一 ID,其中前 13 位是时间戳,后 3 位是随机数。

相关资讯

如何用Excel:从基础入门到高级应用的全攻略?
365beatapp官方下载

如何用Excel:从基础入门到高级应用的全攻略?

⌚ 12-03 👁️ 8644
舅的笔顺(笔画顺序)汉字舅的笔顺动画
365视频直播

舅的笔顺(笔画顺序)汉字舅的笔顺动画

⌚ 10-14 👁️ 2505