使用JavaScript中的对象填充bidimensional数组时出现问题

时间:2014-10-01 22:48:24

标签: javascript arrays

我已经在"全球"位置(在我的文档中的每个函数之外)。

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)是&#34; A&#34;那么,整个数组得到&#34; A&#34;在每一个位置,即使它是[(最大位置),(最大位置)]。

我怎么看? - 好吧,我正在用这样的td-s构建一个表:

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

然后,整个表格只是很多&#34; A&#34;每一个细胞......那么......我做错了什么?

拜托,谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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;            
    }
}