JS如何取对称范围的随机数?

比如我想用 Math.random() 取 -20~-10 和 10~20 这两个范围的随机数,有什么最有精简的解决方案吗?比如不用 if 语句能不能做到?谢谢大家解惑。

阅读 3.4k
4 个回答
(Math.floor(Math.random() * (20 - 10 + 1)) + 10) * (Math.random() < 0.5 ? -1 : 1)
function getRandom(min,max){
    return Math.random()*(max-min)+min;
}
Math.random() * (max - min) + min;

详见


修改:

(Math.random() * (max - min) + min)*(Math.random()<0.5?1:-1);
function rand(min, max) {
    if ( min >= max ) {
        return;
    }
    return  Math.floor(min + (max - min+1) * Math.random());
}

这是取一个范围内整数的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题