簡體   English   中英

在JavaScript中隨機排列數組?

[英]Shuffle an array in JavaScript?

我需要一個二維數組[9,16],其中144個數字從1-> 36以隨機順序排列(因此每個數字重復4次)。

就像是:

sourcearr = array();
for(i = 0; i < 36; i++){
  for(j = 0; j < 4; j++){
      sourcearr[i+j] = i;
   }
}

sourcearr = shuffle(sourcearr)

k = 0;
myrandarr = array();
for(i = 0; i < 9; i++){
    myrandarr[i] = array();
    for(j = 0; j < 16; j++){
        myrandarr[i][j] = sourcearr[k++];
    }
}

使用shuffle的地方

假設您不關心分布,只需存儲

Math.floor(Math.random()*36) + 1

對於數組的每個元素

怎么樣:

var source = array();
var shuffled = array();

for(var i=0;i<4;i++)
{
  for(var j=0; j<36;j++)
  {
    source[i*j] = j+1;
  }
}

while( source.length > 0 )
{
  var index = Math.floor(Math.random()*source.length);
  var element = source.splice(index,1);
  shuffled.push(element);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM