有没有办法在JavaScript中生成指定范围(例如1到6:一、二、三、四、5或6)内的随机数? 网络
数学不是个人强项,可是我一直在从事一个项目,我须要在正负之间生成不少随机数。 dom
function randomBetween(min, max) { if (min < 0) { return min + Math.random() * (Math.abs(min)+max); }else { return min + Math.random() * max; } }
例如 编码
randomBetween(-10,15)//or.. randomBetween(10,20)//or... randomBetween(-200,-100)
固然,您也能够添加一些验证,以确保除了数字之外不要使用其余任何方法。 还要确保最小值始终小于或等于最大值。 spa
我发现上面的Francisc解决方案没有在结果中包含最小或最大数,所以我将其更改成: code
function randomInt(min,max) { return Math.floor(Math.random()*(max-(min+1))+(min+1)); }
从Mozilla开发人员网络文档中: ip
// Returns a random integer between min (include) and max (include) Math.floor(Math.random() * (max - min + 1)) + min;
有用的例子: ci
// 0 -> 10 Math.floor(Math.random() * 11); // 1 -> 10 Math.floor(Math.random() * 10) + 1; // 5 -> 20 Math.floor(Math.random() * 16) + 5; // -10 -> (-2) Math.floor(Math.random() * 9) - 10;
我正在搜索用TypeScript编写的随机数生成器,并在阅读全部答案后编写了此代码,但愿它适用于TypeScript编码人员。 开发
Rand(min: number, max: number): number { return (Math.random() * (max - min + 1) | 0) + min; }
或者,在下划线 文档
_.random(min, max)