2014-10-01 36 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