📅  最后修改于: 2023-12-03 15:27:47.094000             🧑  作者: Mango
在Javascript中获取一个指定范围内的随机数是一个常见的需求,在开发中有很多场景需要获取随机数,比如抽奖、生成密码等。
以下是几种获取指定范围内的随机数的方法:
使用Math.random()可以获取一个在0~1之间的随机数。如果想要获取一个指定范围内的随机数,可以使用以下代码:
function getRandomNum(min, max) {
// Math.random() 生成一个 0~1 的随机数
// (max - min + 1) 生成要获取随机数的整数范围
// Math.floor() 向下取整,保证获取整数随机数
return Math.floor(Math.random() * (max - min + 1) + min);
}
// 生成 1~10 的随机数
console.log(getRandomNum(1, 10));
该方法通过Math.random()生成一个0~1之间的随机数,并乘上范围区间后通过Math.floor()向下取整得到最终的整数随机数。
window.crypto.getRandomValues()是一种新的获取随机数的方法,其使用的是硬件熵(hardware entropy)生成真正的随机数,更加安全和可靠。使用方式如下:
function getRandomNum(min, max) {
let array = new Uint32Array(1);
window.crypto.getRandomValues(array);
return array[0] % (max - min + 1) + min;
}
// 生成 1~10 的随机数
console.log(getRandomNum(1, 10));
该方法使用了window.crypto.getRandomValues()生成一个Uint32Array类型的随机数数组,再通过对数组取模得到指定范围内的整数随机数。
lodash.js是一个流行的JavaScript工具库,提供了许多常用的工具函数,包括生成随机数的函数。
可以通过npm安装lodash.js,使用lodash.random()函数生成指定范围的随机数,使用方式如下:
const _ = require("lodash");
// 生成 1~10 的随机数
console.log(_.random(1, 10));
以上是几种常见的获取指定范围内的随机数的方法,使用时请根据场景需求选择合适的方式。
参考资料: