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。