js 随机生成id

本文深入探讨了一种用于生成唯一标识符(UUID)的算法实现,该算法基于随机数生成一个标准的UUID字符串,广泛应用于分布式系统中确保每条记录的唯一性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

processID = () => {
  const uuid = 'xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
      const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
      return v.toString(16);
  });
  return uuid;
}

 

### 在 UniApp 中生成随机 ID 的方法 #### 使用 UUID 方法 UUID (Universally Unique Identifier) 是一种标准的唯一标识符,广泛应用于各种编程场景中。在 UniApp 中可以利用现有的 JavaScript 库来创建 UUID。 ```javascript function generateUUID() { let d = new Date().getTime(); if(window.performance && typeof window.performance.now === "function"){ d += performance.now(); // 使用高精度时间戳 } return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { const r = (d + Math.random()*16)%16 | 0; d = Math.floor(d/16); return (c=='x' ? r :(r&0x3|0x8)).toString(16); }); } console.log(generateUUID()); ``` 此函数会返回一个格式化的 UUID 字符串[^1]。 #### 利用 `Math.random()` 和 `Date.now()` 自定义组合方式 对于不需要严格遵循特定规格的情况,也可以通过简单的拼接当前时间和伪随机数值的方式来快速构建唯一的字符串作为 ID。 ```javascript function simpleRandomId(length=8){ const timestampPart = Date.now().toString(36); // 将毫秒级时间转换成基数为36的字符串表示形式 const randomPart = ('00000000'+(Math.random()*Math.pow(36,length)|0).toString(36)).slice(-length); return `${timestampPart}-${randomPart}`; } console.log(simpleRandomId()); // 输出形如:"1a7b9e-fj2l" ``` 这种方法简单高效,在大多数情况下能够提供足够的独特性和性能表现。 #### 引入 NanoID 库 如果项目允许外部依赖,则可以选择引入更专业的工具包比如 NanoID 来简化开发过程并提高安全性。NanoID 提供了紧凑且安全的方式用于生产短小精悍但又不易冲突的 ID。 首先安装 nano-id: ```bash npm install nanoid ``` 接着可以在页面或组件内按需加载模块: ```javascript import {nanoid} from 'nanoid'; const id = nanoid(); // 默认长度为21位字符 console.log(id); // 或者指定其他长度 const customLengthId = nanoid(10); console.log(customLengthId); ``` 这种方式不仅易于理解和维护,而且由于采用了先进的算法设计使得产生的 ID 更加难以预测和重复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值