2014-10-01 41 views
0

我已經將該數組放在「全局」位置(在我的文檔中的每個函數之外)。填充二維數組的問題使用JavaScript中的對象排列

var arrayBidimensional; 

然後,我試圖填補這樣的:

var objetoLetra = new objectLetter("","","","","");  

arrayBidimensional=new Array(tamano); 

for (i=0; i <tamano; i++) 
arrayBidimensional[i]=new Array(tamano); 

var random = Math.floor((Math.random()*26)+0); 

for (var i = tamano - 1; i >= 0; i--) 
{ 
    for (var j = tamano - 1; j >= 0; j--) 
    { 
     random = Math.floor((Math.random()*26)+0); 
     objetoLetra.letra = letras[random]; 
     objetoLetra.letraposx = j; 
     objetoLetra.letraposy = i; 
     objetoLetra.formapalabra = "no"; 
     objetoLetra.iden = j+""+i; 
     arrayBidimensional[i][j] = objetoLetra;    
    } 

} 

所以當我試圖達到這個陣列中的一些位置像array[X][X]

我的一切是第一個位置。例如:如果第一個位置(也就是0,0)是「A」,那麼即使是[(最大位置),(最大位置)],整個數組在每一個位置上都會得到「A」。

我看到?嗯,我建設有TD-一個表像這樣怎麼辦:

'<td width="30">'+arrayBidimensional[i][j].letra+'</td>' 

然後,整個表是隻多不少「A」的每一個細胞。 ..所以......我做錯了什麼?

請謝謝!

+0

你要麼缺少代碼,要麼完全不瞭解JavaScript。 – PHPglue 2014-10-01 22:57:55

+0

你可以粘貼你的代碼來定義objectLetter嗎?另外,你從哪裏得到「tamano」? – aronchick 2014-10-01 22:58:45

+0

'arrayBidimensional = new Array(tamano);'將是一個數組,其中一個元素是數組本身。那會是什麼意思? – PHPglue 2014-10-01 23:09:45

回答

0

需要爲陣列中的每個位置創建一個新的objectLetter

arrayBidimensional = new Array(tamano); 

for (i=0; i < tamano; i++) { 
    arrayBidimensional[i] = new Array(tamano); 
} 

for (var i = tamano - 1; i >= 0; i--) 
{ 
    for (var j = tamano - 1; j >= 0; j--) 
    { 
     var objetoLetra = new objectLetter("","","","","");  
     var random = Math.floor((Math.random()*26)+0); 

     objetoLetra.letra = letras[random]; 
     objetoLetra.letraposx = j; 
     objetoLetra.letraposy = i; 
     objetoLetra.formapalabra = "no"; 
     objetoLetra.iden = j+""+i; 
     arrayBidimensional[i][j] = objetoLetra;    
    } 
} 
+0

是的,這完全是我所需要的,我只是爲整個陣列創建一個對象,但是爲每個位置「重新創建」對象是完美的解決方案,謝謝! – 2014-10-02 13:23:31

0

這裏是一個多維數組應該是什麼樣子在JavaScript:

var multi = [['String', 0, 'something else'],['another String', 42, 'whatever']]; 

var multi = new Array(new Array('String', 0, 'something else'), new Array('another String', 42, 'whatever')); 

console.log(multi[1][2]); // 'whatever' 
console.log(multi[0][1]); // 0