【问题标题】:Uncaught TypeError when calling outerArray[index].innerArray[outerArray[index].innerArray.length].foo调用 outerArray[index].innerArray[outerArray[index].innerArray.length].foo 时未捕获的 TypeError
【发布时间】:2014-04-07 16:12:23
【问题描述】:

我有这个代码:

var outerArray = new Array();
func1();

function func1() {

    outerArray[0] = new Array();
    outerArray[0].innerArray = new Array();
    func2(0);
}

function func2(index) {

    outerArray[index].innerArray[outerArray[index].innerArray.length].foo = 3;
    console.log(outerArray[index].innerArray[outerArray[index].innerArray.length].foo);
}

代码报错:

Uncaught TypeError: Cannot set property 'foo' of undefined

有什么问题,我该如何解决?

【问题讨论】:

    标签: javascript arrays debugging object syntax


    【解决方案1】:

    我做了一些调试,发现了以下观察结果,

    您确实初始化了您的outerArray[0].innerArray,但其中没有任何元素。

    所以outerArray[0].innerArray.length0 将是您的语句outerArray[0].innrerArray[outerArray[index].innerArray.length] 的索引

    但是数组outerArray[0].innerArray 是空的。所以这条语句outerArray[0].innerArray[0] 返回一个undefined

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 2019-07-06
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多