2011-06-28 125 views
2

一個二維數組我有一個JavaScript對象 -創建對象的JavaScript中

cell{xPos, yPos}; 

我想創建該對象的二維數組。

cellPrototype = function(x, y) { 
this.xPos = x; 
this.yPos = y; 
} 
var cell = new Array(); 
for(var i=0;i<10;i++) 
{ 
    cell[i] = new Array(); 
    for(var j=0;j<10;j++) 
    { 
    cell[i][j] = new cellPrototype(i,j); 
    } 
} 

此代碼不起作用。 也不對 -

var cellPrototype = function(x, y) {  
return { 
    xPos : x; 
    yPos : y; 
} 
var cell = new Array(); 
for(var i=0;i<10;i++) 
{ 
    cell[i] = new Array(); 
    for(var j=0;j<10;j++) 
    { 
    cell[i][j] = new cellPrototype(i,j); 
    } 
} 

那麼,如何在JavaScript中創建對象的二維數組?

+1

除非我誤解你的問題,你的第一個例子似乎很好地工作:http://jsfiddle.net/tgz22/ –

+0

什麼不起作用?第二個至少給我10陣列10 cellPrototypes每個陣列... –

+0

@James @ josh.trow不知道發生了什麼。在過去的一兩個小時裏,我一直在我的電腦上測試這些代碼,試圖弄清楚出了什麼問題。在jsFiddle中擺弄了一下之後,我纔開始工作。不知道,也許在某個地方出現了一些小錯字。每個人回答和評論,感謝您的幫助。 – elssar

回答

4

這工作對我很好,我不知道如果這正是你要尋找的輸出,其中 Array[x][y]將引用一個對象,具有指向x, y

var Coords = function(x, y) { 
    return { 
     "x" : x, 
     "y" : y 
    }; 
}; 

var Main = []; 

for (var i = 0, l = 10; i < l; i++) { 
    Main[i] = []; 
    for (var j = 0, l2 = 10; j < l2; j++) { 
     Main[i][j] = Coords(i, j); 
    } 
} 

http://jsfiddle.net/robert/d9Tgb/

2

你可以讓一個二維數組,像這樣:

var new_array = []; 
var arr_length = 10; 
for(var i = 0; i < arr_length; ++i){ 
    new_array[i] = []; 
} 
0

使空數組,推動孩子陣列到它

var array = []; 
array.push([1,2,3,4]); 
//array[0][0] == 1 

或全部一次性

var array = [[1,2,3,4], [1,2,3,4], [1,2,3,4]]; 
0

這個職位是有點老了,但這裏是另一種創建二維陣列的方法

var arr1=[]; 
var x=['a','b','c','d']; 
var y=[1,2,3,4];  

for(var i in x){ 
    arr1.push([x[i],y[i]]); //For x and y of the same length 
} 

在JavaScript x和y可以是對象數組

jsFiddle It :)