JavaScript 获取整数随机数的二三事

JavaScript

需求

最近比较无聊随便写了一些简单的需求,如:获取 0~100 的随机整数。虽然不难,但是实践的过程中还是遇到了一些问题,也学到了一些东西,下面让我们一起来实现这个功能

思考与实现

首先我们知道获取随机数的一个方法 Math.random(),但它是获取 0~1 之间的随机x小数,所以我们可以把这个接口的返回值乘以 100,然后取整就可以实现我们的需求了,于是最初的代码是这样的:

Math.floor(Math.random() * 100); // 其实取的是 0~99
Math.ceil(Math.random() * 100); // 其实取的是 1~100

其实这两个代码都是错误的,一个只能取 0~99,一个只能取 1~100,没关系,发现问题我们解决问题,再改:

Math.floor(Math.random() * (100 + 1)) // 0~100 OK
Math.round(Math.random() * 100) // 0~100 OK 利用round四舍五入

扩展

现在需求难度加大,要写一个方法,传入两个参数,获取这两个参数之间(包括两个参数)的随机整数:

const random = (min, max) => {
  if(isNaN(min) || isNaN(max)) {
    console.log('params is NaN');
    return null;
  } else {
    // 下面这两句代码用哪个都可以
    // return Math.floor(Math.random() * (max - min + 1) + min);
    return Math.round(Math.random() * (max - min) + min);
  }
}

random(1,50) // 获取1~50的随机整数

OK,大工告成~~

作者 小菜荔枝 转载请联系作者获得授权

你可能感兴趣的:(JavaScript 获取整数随机数的二三事)