将x个随机数分配给数组

时间:2013-09-02 12:44:38

标签: javascript jquery html arrays

我目前有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语句拾取。

2 个答案:

答案 0 :(得分:0)

您可以使用函数在min和max之间获取随机数,如下所示:

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

然后你可以循环64次来填充阵列。

for (var i = 0; i < 64; i++) {

    battleships.push(getRandomBetween(1, 64));
}

答案 1 :(得分:0)

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变得相对较低,简单地添加随机数并确保不添加重复项比随机排序更快一个巨大的阵列,但目前这是最快的解决方案。

这是一个代码为http://jsbin.com/UwAYACe/1/edit

的JsBin