2013-04-03 44 views
0

我希望構建一個無限維數組的數組。構建無限維數組

我怎麼可能:

  • 獲取父陣列的維數
  • 循環流經最外層的維度元素

我知道這可能是一個愚蠢的問題,但我是一個新手在JavaScript所以請指導我。

[編輯]

的項目,我的工作是什麼,會生成HTML代碼(在一定的應用中使用)。我會要求用戶輸入行和列(列按照順序相互嵌套)。

例如:

Rows = a,b,c 
col1 = q,w,e 
col2 = 1,2,3 

It would generate a table like this: 
| rows | q | w | e | 
|  |1|2|3|1|2|3|1|2|3| 
| a |x|x|x|x|x|x|x|x|x| 
| b |x|x|x|x|x|x|x|x|x| 
| c |x|x|x|x|x|x|x|x|x| 

但一些自定義的功能被要求(如合併單元格,隱藏列,等等。),所以我打算做一個嵌套的數組,將持有的列。

+1

你能給的你正在嘗試做的代碼片斷? – 2013-04-03 21:08:30

+4

JavaScript數組並不是多維的,儘管它們可以嵌套以產生類似的效果。如果不遍歷嵌套數組,無法找到嵌套的深度。 – 2013-04-03 21:13:36

+0

我不是+1,加上花點時間瞭解什麼是JS Array,你不會後悔的! http://www.w3schools.com/js/js_obj_array.asp – blint 2013-04-03 21:29:55

回答

0

如果我正確地讀你的問題,你正在嘗試遍歷不是正方形的數組數組。您可以在外部數組的每個索引處獲取.length屬性以獲取內部維度。

var one = [1]; 
var two = [1,1]; 
var three = [1,1,1]; 
var four = [1,1,1,1]; 
var five = [1,1,1,1,1]; 

var container = [one,two,three,four,five]; 
$("#outer").html(container.length); 

for(var i =0; i < container.length; i++){ 
    $("#inner").append(container[i].length + ','); 
} 

http://jsfiddle.net/ZPwrn/ - 運行例如

+0

感謝小提琴,但我想我必須在循環中使用遞歸函數來獲得所有關卡。 – KiiroSora09 2013-04-03 23:14:07

0

Java腳本的數組不是多維的,到時候你可以創建數組的數組來達到同樣的方式。

var xArrays = [[],[],[]]; 

雖然它們不是多維的,但它們可以隨時調整大小。

xArrays.push([]); xArrays[xArrays.length]=[]; //adding an array 
xArrays.pop(); //removing an array 

通過遍歷數組,

xArray.forEach(
     function(xTemp){ 
      alert(xTemp.length); //You can do your inner level iterations here. 
         });