2012-05-17 46 views
1

我現在在javascript中的多維數組有點傻。但在我的程序中,我必須使用它。 我想用javascript聲明一個動態的3列和m行數組,然後在循環中我需要向該數組中插入一些元素。最後我想顯示該數組。javascript聲明,並插入到一個多維數組

var x = new Array(); 
    for (var y=0; y<=counter; y++) { 
    x[y] = new Array (3); 
x[y][0]='a'; 
x[y][1]='b'; 
x[y][2]='c'; 
    } 

你的幫助是高度讚賞...

+0

plase提供一些代碼...你嘗試過什麼? – fcalderan

回答

1

數組根據需要增長,所以聲明數組長度沒有意義。你開始的是好的。 http://books.google.ca/books?id=4RChxt67lvwC&pg=PA141&lpg=PA141&dq=JS+array+grow+as+needed?&source=bl&ots=tgY8BlGXm8&sig=_3jcH1LTmYi9QiXxn9pHROpbN1s&hl=en&sa=X&ei=7v60T_XwA4ThggfGuoEX&ved=0CEoQ6AEwAQ#v=onepage&q=JS%20array%20grow%20as%20needed%3F&f=false

http://www.codingforums.com/showthread.php?t=5198

只是平視,將創建一個數組,它是大1,則計數器。這爲B/C在你的循環中,您有Ÿ< =計數器和y從0開始,如果你想要的長度會適得其反,以顯示你可能要考慮的陣列將其更改爲

y<counter 

一個嵌套循環。

JS

for(var i=0; i<x.length; i++) 
    for (var j=0; j<3; j++) 
    alert(x[i][j]); 

其中x是參考陣列。 如果你想打印整個數組一次考慮從數組中的元素創建一個字符串,並打印

function displayArray(x){ 
var stringArray=''; 
for(var i=0; i<x.length; i++) 
    for (var j=0; j<3; j++) 
    stringArray+= x[i][j]; 
alert(stringArray); 

}

0

像這樣的事情?

var x = [ 
    [ 
     [1, 2, 3], 
     [4,5,6] 
    ], 
    [ 
     [7, 8, 9] 
    ] 
]; 

alert(x[0][1][2]); 

這就是爲什麼JavaScript的變量語法並不總是被破解的原因之一。與Java比較:

String[][][] x = new String[5][5][5]; 
+1

此答案中包含兩個錯誤。首先,TO需要動態方法來聲明數組。其次,與Java的比較是絕對無用的 – Andreas

0

也許這樣的事情?

var sDataArray=MultiDimensionalArray(7,2); 
alert(sDataArray[0][0]); 

function MultiDimensionalArray(iRows,iCols) 
{ 
var i; 
var j; 
    var a = new Array(iRows); 
    for (i=0; i < iRows; i++) 
    { 
     a[i] = new Array(iCols); 
     for (j=0; j < iCols; j++) 
     { 
      a[i][j] = ""; 
     } 
    } 
    return(a); 
} 

在行中是動態的,也許你想要一個數組列表?你也可以做一個方法來添加一行,並增加數組的大小。

0
try something like this.. 

var cols = 3; 
var rows = 5; 

createArray(cols,rows); 

function createArray(cols,rows) { 
    var newArray = []; 
    for(i=0;i<cols;i++) { 
     newArray[i] = []; 
     for(j=0;j<rows;j++) {  
      newArray[i][j] = "["+i+"]"+"["+j+"]"; 
     } 

    } 
    return newArray; 
}