今天工作的时候,项目有遇到一个需求,就是要随机一个-10到10之间的一个随机数,网上查了下,没有达到我的效果,我想要的是:比如 -10-10, 1-10这样子的,可以负数的那种,所以就自己动手撸了一个。

各种随机方式:

n 代表最小 m 代表最大 r表示随机的数值

  1. n < r >= m; 包含最大的数
  2. n <= r > m 包含最小的数
  3. n <= r >= m 两边都包含
  4. n < r > m 两边都不包含
/** * [random 各种随机数合集] * @param {[number]} lowest [最小的值] * @param {[number]} highest [最大的值] * @param {[type]} type [默认:两边包含 1:不包含最低 2:不包含最高 3:两边都包含] * @return {[number]} [返回一个随机数值] */ function random(lowest, highest, type) { var num = Math.random(); if (lowest<0) { multiplicand = highest + Math.abs(lowest); }else{ multiplicand = lowest + highest; } if (type == 1) { multiplicand -= 2; val = Math.ceil(highest - num * multiplicand); }else if(type == 2){ multiplicand -= 2; val = Math.floor(highest - num * multiplicand); }else if(type == 3){ multiplicand -= 2; val = Math.floor(highest - num * multiplicand); if (val<0 || val == lowest) val += 1; }else{ multiplicand -= 1; val = Math.ceil(highest - num * multiplicand); } if (val<0 && highest>0) val -= 2 return val; } random(1, 10); random(1, 10, 1); random(1, 10, 2); random(1, 10, 3);

以上就是我写的一个随机数的方法,如果有问题,可以在下方留言,谢谢。