rand生成随机数的范围_JS中生成指定范围随机数

d620ea04ffaa3620851d8880358204c3.png在日常工作中,我们经常会需要生成一些随机数,相信大家最熟悉的就是 Math.random() 这个api,本文将介绍生成指定范围随机数的方法。


24a61ea69bac32750169bde9dc134087.png首先我们复习一下这几个api,后面会用到:

1、Math.random()

返回一个0~1之间的浮点数,包含0,不包含1,您可以缩放到所需的范围,实现将初始种子选择到随机数生成算法,它不能被用户选择或重置。

2、Math.floor()

返回一个小于或等于给定数字的最大整数

3、Math.ceil()

返回一个大于或等于给定数字的最小整数

4、Math.round()

返回一个数字四舍五入之后的整数形式

相关api还有很多,适合不同使用场景,具体可参阅 MDN

这里以生成m到n之间的随机数为例。

一、生成m到n之间的数字,不包含m和n

74483095b8b40d94b4a472b37abb8719.png
const genBetween = (m, n) => Math.round(Math.random() * (n - m - 2)) + m + 1;

二、生成m到n之间的数字,包含m和n

d1741ec35334fddd50c03932b17c7039.png
const genBetweenAll = (m, n) => Math.floor(Math.random() * (n - m + 1)) + m;

三、生成m到n之间的数字,包含m,不包含n

41a26b3b5e403f828193c54185bc4b47.png
const genBetweenLeft = (m, n) => Math.floor(Math.random() * (n - m)) + m;

四、生成m到n之间的数字,不包含m,包含n

b6b086ae75d4f10b75bc6311751dd7c8.png
const genBetweenRight = (m, n) => Math.floor(Math.random() * (n - m) + 1) + m;

附上一些好用的工具:

在线随机数字/字符串生成高强度密码生成器utools

参考文章

JS生成某个范围的随机数【四种情况详解】


版权声明:本文为weixin_29057237原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。