js实现生成随机数值的数组
生成随机数值的数组
// min 开始数值, max 结束数值, count 数组内填充几个数值
function generateUniqueRandomNumbers(min, max, count) {
let result = new Set();
while (result.size < count) {
let num = Math.floor(Math.random() * (max - min + 1)) + min;
result.add(num);
}
return Array.from(result);
}
// 使用方式 输出结果为 1-9之间的三个随机数
let uniqueRandomNumbers = generateUniqueRandomNumbers(1, 9, 3);
// 数组去重操作
function shuffleArray(array) {
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;
}
// 生成随机数值
function generateUniqueRandomNumbersV2(min, max, count) {
let numbers = [];
for (let i = min; i <= max; i++) {
numbers.push(i);
}
numbers = shuffleArray(numbers);
return numbers.slice(0, count);
}
let uniqueRandomNumbersV2 = generateUniqueRandomNumbersV2(1, 9, 3);
要生成的随机数的范围远大于你需要的数量时 推荐 使用 方法一
范围不是特别大且需要确保随机性时推荐使用 方法二
当你需要的随机数与范围大小相近时,方法1的性能可能会下降,因为它可能需要多次尝试才能填充Set。