在 JavaScript 中生成范围内不重复的随机数,可以使用以下方法:
方法一:使用数组和循环
function getUniqueRandomNumbers(count, min, max) {
if (max - min + 1 < count) {
throw new Error('范围内的数字不够生成指定数量的不重复随机数');
}
let numbers = [];
while (numbers.length < count) {
let num = Math.floor(Math.random() * (max - min + 1)) + min;
if (!numbers.includes(num)) {
numbers.push(num);
}
}
return numbers;
}
// 示例用法
let uniqueRandomNumbers = getUniqueRandomNumbers(5, 1, 10);
console.log(uniqueRandomNumbers);
优势:
应用场景:
可能出现的问题及解决方法:
方法二:打乱数组顺序
function getUniqueRandomNumbers(count, min, max) {
let numbers = [];
for (let i = min; i <= max; i++) {
numbers.push(i);
}
for (let i = numbers.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
[numbers[i], numbers[j]] = [numbers[j], numbers[i]];
}
return numbers.slice(0, count);
}
// 示例用法
let uniqueRandomNumbers = getUniqueRandomNumbers(5, 1, 10);
console.log(uniqueRandomNumbers);
优势:
应用场景:
可能出现的问题及解决方法:
领取专属 10元无门槛券
手把手带您无忧上云