我的需求
在 0 - 3 之间(包含0与3)生成 2 个不重复的随机数。
我的方案
我没有使用do while的方案来做...
function randomNumbers($range){
return $range[0] + Math.round(Math.random() * ($range[1] - $range[0]));
}
// 生成随机数字
function generatedRandomNumbers($length,$range){
var _randomNumber = randomNumbers($range),
_array = [];
for(var i = 0;i < $length;i++){
if(~_array.indexOf(_randomNumber)){
_randomNumber = randomNumbers($range);
}
_array[i] = _randomNumber;
}
console.log(JSON.stringify(_array));
};Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
function randomNum(min, max) { return min + Math.round(Math.random() * (max - min)); } function random2() { var rdm1 = randomNum(0, 3); var rdm2 = randomNum(0, 3); if(rdm1 === rdm2) { return random2(); } return [rdm1, rdm2]; }[0,1,2,3].sort(function(){return Math.random() > 0.5}).slice(0,2)昨天也看到了一个类似的问题,处理的不是很好,但是可以得到结果。
你这个是小范围的,所以很简单,一句话