如何使偶数洗牌或随机化?

时间:2020-04-23 17:08:57

标签: javascript html arrays for-loop

我正在尝试使偶数出现乱码或随机出现任何想法?我尝试将其放入一个数组中,但是它变得太复杂,太快。

<html>
  <head>

    <script>

      function printEvenNums()

      {
                var start = document.getElementById("start").value;
        var end = document.getElementById("slut").value;
        var evenNums = "<br>Jämna nummer:<br>";

        for(i=start; i<=end; i++)
        {

          if(i % 2 == 0)
          {
            evenNums += i + "<br>";
          }
        }

        document.getElementById("result").innerHTML = evenNums;
      }

    </script>

  </head>
  <body>
    <h3>Grisen kan programera :)</h3>
    Start: <input type="number" min="0" id="start" value="1" />
    Slut: <input type="number" id="slut" min="1" value="20" />
    <input type="button" onclick="printEvenNums()" value="Få fram jämna nummer" />
    <div id="result"></div>
  </body>
</html> 

2 个答案:

答案 0 :(得分:0)

在结果数组的随机位置插入偶数。

提示:

  • 通过Math.random() * x生成小于x的随机数。
  • 使用Math.floor()将随机数设为整数。
  • 通过数组的splice(),您可以将项目插入数组中所需的位置。

function printEvenNums() {
  var start = parseInt(document.getElementById("start").value);
  var end = parseInt(document.getElementById("slut").value);
  var evenNums = "<br>Jämna nummer:<br>";

  var evens = [];
  for (var i=start+start%2, j=2; i<=end; i+=2, j++) {
    let posi = Math.floor(Math.random()*j);
    evens.splice(posi,0, i);
  }
  document.getElementById("result").innerHTML = evenNums+evens.join('<br>');
}
<html>
  <head>
  </head>
  <body>
    <h3>Grisen kan programera :)</h3>
    Start: <input type="number" min="0" id="start" value="1" />
    Slut: <input type="number" id="slut" min="1" value="20" />
    <input type="button" onclick="printEvenNums()" value="Få fram jämna nummer" />
    <div id="result"></div>
  </body>
</html> 

答案 1 :(得分:0)

考虑这是您的偶数数组

var array=[2,4,6,12,8,10];

此外,我还创建了一种用于生成范围内随机数的方法。来自here

function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

使用以上

var randomArray=[];

    while(array.length>0)
    {
        var random=getRandomInt(0,array.length-1);
        randomArray.push(array[random]);
        array.splice(array.indexOf(array[random]),1);

    }
    console.log(randomArray)

注意:这只是一种可用于随机化数组的算法。休息,您可以根据自己的需求进行更改