【问题标题】:beginner javascript; for loop with array of objects coming out as undefined初学者javascript;带有对象数组的 for 循环未定义
【发布时间】:2013-08-22 14:52:33
【问题描述】:

这是我的代码

function Person (name, age) {
this.name = name;
this.age = age;
}

var family = new Array();
family[0] = new Person("alice", 40);
family[1] = new Person("bob", 42);
family[2] = new Person("michelle", 8);
family[3] = new Person("timmy", 6);

for (i =0; i<= family.length; i++) {
    console.log (family[i].name);
}

这会产生一个错误: TypeError:无法读取未定义的属性“名称”

任何人都可以从这里指出正确的方向吗?

【问题讨论】:

    标签: javascript object for-loop constructor


    【解决方案1】:

    你的迭代太远了。

    for (var i = 0; i < family.length; i++)
    

    JavaScript 数组从零开始,最后一个非空单元格位于 length - 1。因此,当您的索引等于长度时,您必须停止迭代,而不是当它大于长度时。

    【讨论】:

      【解决方案2】:

      你应该把你的测试条件改成i &lt; family.length,你越界了。

      【讨论】:

      • 欢迎。如果它解决了您的问题,您也可以将其标记为答案。
      【解决方案3】:

      i &lt; family.length 呢?

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          它工作得很好。

          for (i =0; i<= family.length; i++)
          

          演示:http://jsfiddle.net/285Th/1/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-01-13
            • 2016-01-05
            • 1970-01-01
            • 1970-01-01
            • 2011-09-28
            • 1970-01-01
            • 2013-06-16
            相关资源
            最近更新 更多