Javascript 两个随机数

Javascript 两个随机数,javascript,random,Javascript,Random,可能重复: 这是两个随机数。有时它们是相等的,但是如果ifanse2等于ifanse2,它会重新生成一个介于3-1之间的随机数,但不包括ifanse2。或者有什么方法可以避免一开始就相等吗?您可以循环,直到选择一个不同的数字: var ifanse=Math.floor(Math.random()*4)+1; var ifanse2=Math.floor(Math.random()*3)+1; while (ifanse2 == ifanse) { ifanse2=Math.floor

可能重复:


这是两个随机数。有时它们是相等的,但是如果
ifanse2
等于
ifanse2
,它会重新生成一个介于3-1之间的随机数,但不包括
ifanse2
。或者有什么方法可以避免一开始就相等吗?

您可以循环,直到选择一个不同的数字:

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;
}

您可以循环,直到选择不同的号码:

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;
}

例如,您可以编写一个泛型函数,它为您提供一个随机数数组

  • 填充和排列您的范围内的数字,这将消除重复的数字
  • 洗牌数组
  • 返回一个长度数组,其中包含所需的随机数计数

你永远不会得到2个相等的数字,如果你需要的话,你可以生成超过2个不同的随机数


这里有一个

例如,您可以编写一个通用函数,它为您提供一个随机数数组

  • 填充和排列您的范围内的数字,这将消除重复的数字
  • 洗牌数组
  • 返回一个长度数组,其中包含所需的随机数计数

你永远不会得到2个相等的数字,如果你需要的话,你可以生成超过2个不同的随机数


这里有一个

所以你不希望它们完全是随机的?真的吗?你昨天问的问题难道你什么都没学到吗?您可以使用相同的do-while循环…我希望它们是随机的,但它们不应该相等。@H2CO3您可能可以这么说。但是前面答案中的一些方法似乎不适合可变和随机的需求。我现在就试试,我还没有测试过。所以你不想让它们完全随机?真的吗?你昨天问的问题难道你什么都没学到吗?您可以使用相同的do-while循环…我希望它们是随机的,但它们不应该相等。@H2CO3您可能可以这么说。但是前面答案中的一些方法似乎不适合可变和随机的需求。我现在就试试,我还没有测试过。有时候我会生成4。我希望将其限制在3以内。然后将
*4
替换为
*3
。有时ifanse生成4。我希望将其限制在3以内。然后将
*4
替换为
*3
。。
  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 = genRand(0,3,2);
var ifanse = rands[0]
var ifanse2 = rands[1]