【发布时间】:2017-08-03 18:09:35
【问题描述】:
我正在创建一个简单的程序,该程序将打印我的学生对象数组的名字和姓氏。当我运行程序时,它会正确打印所有名称,但还会指出出现以下错误:
TypeError: 无法读取未定义的属性“first_name”
这是我的代码:
var students = [
{first_name: 'Michael', last_name : 'Jordan'},
{first_name: 'John', last_name : 'Rosales'},
{first_name: 'Mark', last_name : 'Guillen'},
{first_name: 'KB', last_name : 'Tonel'}
]
for (var i = 0; i <= 4; i++) {
console.log(students[i].first_name + " " + students[i].last_name);
};
我的 for 循环中是否有我没有看到的错误?
【问题讨论】:
-
是的,如果从零开始,则数组中的最后一项是三。当你在循环中达到四个时,你有
undefined,因为你的数组中没有那么多项目。 -
你只有四个对象,你的终止条件应该是
i<4里面的for循环 -
你有一个对象数组,所以你也可以使用 forEach()
-
永远不要使用静态长度来迭代数组。始终参考 array.length
-
@Jonasw 100% 同意因为我们永远不知道数组的长度是否会改变。
标签: javascript arrays object for-loop