TS 随机生成区间内整数

		let i = 0;
		do {
			i++;
			let minNum = 0;
			let maxNum = 30;
			let value_a = Math.random() * (maxNum - minNum + 1) + minNum + "";
			let value_b = parseInt(value_a);
			console.log(value_b);
		} while (i < 10);

 

### TypeScript 中生成唯一标识符的方法 在 TypeScript 中,可以使用多种方法生成唯一标识符(UUID 或随机字符串)。以下是几种常见且高效的方式: #### 1. 使用 `crypto-random-string` 库生成加密强度的随机字符串 可以通过引入 `crypto-random-string` 库来生成高强度的随机字符串。该库提供了灵活的选项以满足不同的需求[^1]。 ```typescript import cryptoRandomString from 'crypto-random-string'; // 生成一个长度为16的随机字符串 const randomString = cryptoRandomString({ length: 16 }); console.log(randomString); ``` #### 2. 使用原生 JavaScript 的 `crypto` API TypeScript 支持直接调用浏览器或 Node.js 提供的 `crypto` 模块,从而生成加密安全的随机字符串。 ```typescript function generateRandomString(length: number): string { const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; const array = new Uint8Array(length); window.crypto.getRandomValues(array); return Array.from(array, (byte) => characters[byte % characters.length]).join(''); } const randomString = generateRandomString(16); console.log(randomString); ``` #### 3. 使用 UUID 库生成全局唯一标识符 `uuid` 是一个广泛使用的库,用于生成符合 RFC 4122 标准的 UUID。以下是一个示例[^4]: ```typescript import { v4 as uuidv4 } from 'uuid'; // 生成一个版本4的UUID const uuid = uuidv4(); console.log(uuid); ``` #### 4. 使用 ULID 生成可排序的唯一标识符 ULID 是一种改进版的唯一标识符,支持时间排序特性,特别适合需要按时间顺序存储数据的场景[^2]。可以通过 `ulid` 库实现: ```typescript import { ulid } from 'ulid'; // 生成一个ULID const uniqueId = ulid(); console.log(uniqueId); // 如果需要单调递增的ULID import { monotonicFactory } from 'ulid'; const ulidMonotonic = monotonicFactory(); console.log(ulidMonotonic(100000)); ``` #### 5. 自定义简单随机字符串生成器 如果不需要加密强度,可以实现一个简单的随机字符串生成器: ```typescript function generateSimpleUniqueId(length: number): string { let result = ''; const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; const charactersLength = characters.length; for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } const simpleUniqueId = generateSimpleUniqueId(16); console.log(simpleUniqueId); ``` ### 性能对比 - **UUID**:适用于需要标准唯一标识符的场景,但不支持排序。 - **ULID**:性能优于 UUID(特别是单调 ULID),并且支持时间排序[^2]。 - **随机字符串**:灵活性高,可以根据需求调整字符集和长度[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值