Javascript TypeError:无法读取属性';长度';未定义的类型(由函数参数定义)
我试图使下面的简单代码正常工作,但总是出现以下错误:TypeError:无法读取未定义的属性'length'Javascript TypeError:无法读取属性';长度';未定义的类型(由函数参数定义),javascript,for-loop,multidimensional-array,variable-length-array,Javascript,For Loop,Multidimensional Array,Variable Length Array,我试图使下面的简单代码正常工作,但总是出现以下错误:TypeError:无法读取未定义的属性'length' 函数多路传输(arr){ var乘积=1; 如果(arr==未定义){ 返回“未定义数组!”; }否则{ 对于(变量i=0;i
函数多路传输(arr){
var乘积=1;
如果(arr==未定义){
返回“未定义数组!”;
}否则{
对于(变量i=0;i
问题出在哪里?这似乎是复制粘贴/打字错误:
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; i++)
for(变量i=0;i
在内部for循环中,您将递增i
而不是j
。您将离开数组的末尾,使arr[i]
未定义
您可以通过使用调试器监视
i
和j
的值,或者调用console.log
来解决这个问题。您会注意到i
的增量太快,而j
保持在0。您正在检查arr
是否未定义,但不检查arr[i]
是未定义的。事实上,我们的许多代码让我失明。我在第二个for循环中实际上是在增加I
,而不是j
。
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; i++)