【问题标题】:assigning x amount of random numbers to an array将 x 个随机数分配给数组
【发布时间】:2013-09-02 12:44:38
【问题描述】:

我目前有 64 个值 (1-64),每个值返回不同的结果。 我有一个包含一系列数字的数组设置

var battleships = ['1', '2', '3', '6']

与哪个链接

if ($.inArray(String($(this).data("value")), battleships) > -1) { 
    $(this).addClass("success").removeClass("pointer");
    }

我将如何让数组分配(例如)1 到 64 之间的 26 个随机数,然后可以由 if 语句提取。

【问题讨论】:

    标签: javascript jquery html arrays


    【解决方案1】:

    你可以有一个函数来获取最小值和最大值之间的随机数,如下所示:

    function getRandomBetween(min, max) {
        return Math.random() * (max - min) + min;
    }
    

    然后你可以循环 64 次来填充你的数组。

    for (var i = 0; i < 64; i++) {
    
        battleships.push(getRandomBetween(1, 64));
    }
    

    【讨论】:

      【解决方案2】:
      function getDistinctNumbers(count) {
        var values = [];
        for (var i=1; i<=64; i++)
          values.push(i);
      
        values.sort(function(a,b){return Math.round(Math.random() * 2) -1;});
        values.length = count +1;
        return values;
      }
      

      基本上,你用你想要的值填充一个数组,随机播放它,然后减少它的长度以满足你的需要。如果 count 大于 64,则数组将填充 undefined 值。

      如果您的需求发生变化并且由于某种原因,64 变成了一个很大的数字,而 24 仍然相对较低,那么简单地添加随机数并确保您不添加重复项比随机排序更快一个庞大的数组,但目前这是最快的解决方案。

      这是一个带有代码的 JsBin:http://jsbin.com/UwAYACe/1/edit

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-14
        • 1970-01-01
        • 2021-06-05
        • 1970-01-01
        • 1970-01-01
        • 2019-05-17
        • 2020-09-14
        • 2017-08-20
        相关资源
        最近更新 更多