typescript打乱0到14的数组随机不重复
时间: 2024-12-10 09:33:22 浏览: 15
在 TypeScript 中,你可以使用 Fisher-Yates 洗牌算法(也称为 Knuth 算法)来打乱一个指定范围(如 0 到 14)内的不重复整数数组。以下是步骤:
1. 创建一个包含 0 到 14 的整数数组。
2. 获取数组长度。
3. 使用一个循环,从数组的最后一个元素开始向前遍历,每次取出一个元素,然后用一个随机索引位置的元素替换它。这样可以保证每个元素都有机会出现在任何位置。
以下是一个示例代码片段:
```typescript
import { shuffle } from 'lodash'; // 导入 lodash 库中的 shuffle 函数
const numbers = Array.from({ length: 15 }, (_, i) => i); // 生成 0 到 14 的数组
shuffle(numbers); // 使用 lodash 的 shuffle 函数打乱数组
console.log(numbers); // 打印结果
// 或者自己实现洗牌算法
function customShuffle(array: number[]) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]]; // 交换元素
}
return array;
}
const shuffledArray = customShuffle(numbers);
console.log(shuffledArray);
```
阅读全文