var ifanse=Math.floor(Math.random()*4)+1;
var ifanse2=Math.floor(Math.random()*3)+1
这是2个随机数。有时他们是平等的,但如果ifanse
等于ifanse2
,它会有任何方式,它会在3 - 1之间重新生成随机,但不包括ifanse2
。或者有没有办法避免在第一时间等同?
答案 0 :(得分:4)
你可以循环直到你选择一个不同的数字:
var ifanse=Math.floor(Math.random()*4)+1;
var ifanse2=Math.floor(Math.random()*3)+1;
while (ifanse2 == ifanse)
{
ifanse2=Math.floor(Math.random()*3)+1;
}
答案 1 :(得分:2)
例如,您可以编写一个通用函数,它为您提供一组随机数
function genRand(min, max, cnt) {
var arr = [];
for (var i = min, j = 0; i <= max; j++, i++)
arr[j] = i
arr.sort(function () {
return Math.floor((Math.random() * 3) - 1)
});
return arr.splice(0, cnt)
}
console.log(genRand(0, 3, 2)) // e.g [0,3]
然后您可以将它们存储在var中,或直接从rands
var rands = genRand(0,3,2);
var ifanse = rands[0]
var ifanse2 = rands[1]
你永远不会得到2个相同的数字,如果你需要,你可以产生2个以上不同的数量。
继承人Jsbin