在打字稿代码中,我有一个包含对象的数组。当我调用“getUsers(users)”函数时,它会根据需要返回结果,但在控制台中我收到此错误
“未捕获类型错误:无法读取未定义的属性“firstName”
在 getUsers (index.js:20)
在index.js:23”
let users = [
{
firstName: "John",
lastName: "Doe",
age: 34
},
{
firstName: "Jack",
lastName: "Jackson",
age: 23
},
{
firstName: "Ann",
lastName: "Watson",
age: 24
}
];
function getUsers(users) {
for (var i = 0; i <= users.length; i++) {
console.log(users[i].firstName + " is " + users[i].age + " years old!");
}
}
getUsers(users);
问题在于i <= users.length
,它需要是i < users.length
.i++
会将 i 的值增加 1,但长度为 3 并且索引从 0 开始,因此元素被占用直到第二个索引,因此i <= users.length
实际上会尝试访问第三个索引中未定义的元素
let users = [{
firstName: "John",
lastName: "Doe",
age: 34
},
{
firstName: "Jack",
lastName: "Jackson",
age: 23
},
{
firstName: "Ann",
lastName: "Watson",
age: 24
}
];
function getUsers(users) {
for (var i = 0; i < users.length; i++) {
console.log(users[i].firstName + " is " + users[i].age + " years old!");
}
}
getUsers(users);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)