海兰, 的特性“值”我坚持以下错误:无法设置未定义
“遗漏的类型错误:无法设置属性‘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],它看起来像是有效的。但这不是它应该采取的行动。 谢谢。
问题在于你的逻辑。在某个时间点,'r [ax [i] + j] [ay [i]]'返回未定义。由于我们不知道'r'' ax'或'ay'是什么,这就像我们可以告诉你的一样。你能举一个例子说明你如何使用这段代码,以便我们重新创建它并帮助调试它? –
@KevinB:具体来说,在某个时间点'r [ax [i] + j]'是'undefined'。 –
顺便说一句,你的'blank2dArray'函数创建并抛出一个数组,并建议你可能想再次看看你对JavaScript中的数组是如何工作的理解。你的初始化器应该是'var result = [];'(注意,不是'[[]]'),因为你用随后的代码填充外部数组。 –