无法设置未定义的属性“值”

时间:2014-01-06 18:57:23

标签: javascript

HY,  我遇到了以下错误:

'未捕获的typeError:无法设置未定义'

的属性'5'

代码是这样的:

    function blank2dArray( width,height) 
    { 
       var result=[[]];//matrix
      for(var i=0;i<width;i++) 
      {
          result[i]=new Array(height);
      } 
      return result; 
    }


 function generate()
    {
       var r=blank2dArray(width,height);  //generates a blank matrix
       for(var i=0;i<across.length;i++) 
       { 
         var word=across[i]; 
         for(var j=0;j<across[i].length;j++) 
         { 
           r[ax[i]+j][ay[i]]=word[j]; //at some point ay[i]=5
         } 
       }
    }

across-it is an array of words;
ax-array of numbers
ay-array of numbers

如果我用任何数字替换ax [i]和ay [i],它看起来像是有效的。但这不是应该采取行动的方式。 谢谢。

2 个答案:

答案 0 :(得分:0)

在某些时候,r[ax[i]+j][ay[i]]未定义,可能是因为ax[i] + j大于其长度,并且您无法为未定义的对象分配值。

答案 1 :(得分:0)

好吧,我想我解决了。之所以发生这种情况是因为ax [i]它是一个字符串,因此ax [i] + j无效。我所做的只是parseInt(ax [i])+ j。这样矩阵就会相应地填充。