0

現在、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 ステートメントで取得できます。

4

2 に答える 2

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 は比較的低いままである場合、巨大な配列をランダムに並べ替えるよりも、単純に乱数を追加して重複を追加しないようにする方が高速です。 、しかし今のところこれが最速の解決策です。

これがコード付きの JsBin です: http://jsbin.com/UwAYACe/1/edit

于 2013-09-02T12:59:00.817 に答える