DEV Community

Cui Mingda
Cui Mingda

Posted on • Edited on

How to generate randomly integer number with sign in JavaScript

凭直觉第一反应,可能是封装一下Math.random(),但考虑到效率,这是最不建议的方式,使用random组件更痛快,这里的min和max都是包含的,也省去思考区间范围的烦恼

import random from 'random';
const randomInteger = random.int(min, max);
Enter fullscreen mode Exit fullscreen mode

进一步的,比如默认值是0,我们希望随机修改为其他的一个整数,有可能是正整数,有可能是负的,但不能是0,应该怎么搞呢?一个函数搞定

const randomNonZeroInteger = (min, max) => random.int(min, max) || randomNonZeroInteger(min, max);
Enter fullscreen mode Exit fullscreen mode

再进一步,如果我们希望生成一个跟指定值不同的随机数

const randomIntExcept = (value) => {
  const randomInt = random.int(magic.result.min, magic.result.max);
  if (value === randomInt) {
    return randomIntExcept(value);
  }

  return randomInt;
};
Enter fullscreen mode Exit fullscreen mode

References

Top comments (0)