2014-09-01 198 views
0

我想創建一個多維數組這樣的多維數組:創建for循環

array[0][1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 
array[1][21,22,23,24,25,26,27....] 
array[.][....] 

我怎樣才能做到這一點的Javascript?

我已經試過這樣:

var squares = new Array(); 
     for(var i = 1; i <= 8; i++) 
     { 
      for(var j = 1; j <= 20; j++) 
      { 
       squares.push(i, j);  
      } 

     } 

我怎樣才能做到這一點?

+0

更新的答案。 – 2014-09-01 14:30:51

回答

1

你可以做這樣的事情:

var squares = new Array(); 
for(var i = 0; i <= 8; i++) 
{ 
    squares[i] = new Array(); 
    for(var j = (i * 20) + 1; j <= 20 * i + 20; j++) 
     if (squares[i] == null) 
      squares[i] = j; 
     else 
      squares[i].push(j); 
} 

輸出配備,如:

array[0][1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 
array[1][21,22,23,24,25,26,27....] 
+0

我已經測試過了,我得到這個錯誤:Error:squares [i] is undefined – user500468 2014-09-01 14:21:37

+0

@ user500468更新了答案! – 2014-09-01 14:22:18

+0

@ user500468立即查看! :) – 2014-09-01 14:28:07

0

使用模操作以限制內數組的大小

var limit = 80 
var inner_limit = 20 
var square=[] 
var inner =[] 
for(var i=1;i<=limit;i++){ 
    inner.push(i)   
    if(i%inner_limit==0){ 
     square.push(inner) 
     inner = [] 
    } 

} 
+0

不給預期的輸出! :( – 2014-09-01 14:32:31

+0

修復它,你能再試一次嗎? – xecgr 2014-09-01 14:35:15

+1

好。現在工作...反正太複雜了!':)' – 2014-09-01 14:36:02

0
var array = []; // Main array 
var numArrays = 10, // Number of sub-arrays 
    numPerArray = 20; // Number of squares per sub-array 

for(var i = 0; i < numArrays; i++){ 
    var subArray = []; 
    // Number to start at 
    var start = i * numPerArray; 
    // Count up to start + numPerArray 
    for(var j = start; j < start + numPerArray; j++){ 
     subArray.push(j); 
    } 
    // Add to main array 
    array.push(subArray); 
} 
0

你可以用兩個「for」循環來做。在第一個循環中,通過主數組併爲每個元素添加第二個循環中的元素。

var arrayLength = 10; // Main array length 
var limit = 20; // Number of squares 
var array = []; 

for (var i = 0; i < arrayLength; i++) 
{ 
    array[i] = []; // Create subArray 

    for(var j = 1; j <= limit; j++) 
    { 
     array[i].push(j); 
    } 
} 
+1

你可能想要添加一些關於你的答案是/是什麼的背景的解釋。 – Whymarrh 2014-09-01 16:01:10