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],它看起来像是有效的。但这不是应该采取行动的方式。 谢谢。
答案 0 :(得分:0)
在某些时候,r[ax[i]+j][ay[i]]
未定义,可能是因为ax[i] + j
大于其长度,并且您无法为未定义的对象分配值。
答案 1 :(得分:0)
好吧,我想我解决了。之所以发生这种情况是因为ax [i]它是一个字符串,因此ax [i] + j无效。我所做的只是parseInt(ax [i])+ j。这样矩阵就会相应地填充。