在Javascript中生成0 - 9(包括两者)之间的随机数的最简单方法是什么,不包括6?
问问题
7216 次
7 回答
14
这是您的单线解决方案:(
[0,1,2,3,4,5,7,8,9][Math.floor(Math.random()*9)]
于 2012-12-24T04:45:36.397 回答
12
生成一个 0 到 8 之间的随机数,如果 >=6 则加 1
于 2012-12-24T04:39:09.197 回答
8
天真的方法:
var r;
do {
r = Math.floor(Math.random() * 10);
} while (r == 6);
于 2012-12-24T04:42:06.610 回答
2
我会在这里偷懒,并采取@H2CO3 的答案来工作而不尝试它。
<script type="text/javascript">
function generate(var UNWANTED) {
var r;
do {
r = Math.floor(Math.random() * 10);
} while (r == UNWANTED);
return r;
}
function GENERATE_RANDOM_FROM_0_TO_10_BUT_NOT_6_OR_SOMETHING_ELSE_(var NOT_GOOD){
return generate(NOT_GOOD) <== One line solution.
}
<script>
于 2012-12-24T05:00:02.233 回答
1
var n = (n = Math.floor(Math.random() * 9)) == 6 ? 9 : n;
于 2012-12-24T05:43:55.370 回答
0
试试这个:
var numbers = "012345789";
var rnum = Math.floor(Math.random() * numbers.length);
var randomnumber = parseInt(numbers.substring(rnum,rnum+1));
于 2012-12-24T04:46:08.250 回答
-1
试试这个:
var rr=(Math.floor(Math.random()*10));
result=(rr==6)?1:rr;
编辑:
1 的概率不太可能是其他的,所以如果它生成 6,我将其设为递归。
function notSix() {
var rr=(Math.floor(Math.random()*10));
return (rr==6)?notSix():rr;
}
notSix()
更正第一个例子:首先
生成0-8之间,如果输出6转换为9;
var rr=(Math.floor(Math.random()*9));
result=(rr==6)?9:rr;
于 2012-12-24T04:54:16.940 回答