【发布时间】:2017-11-19 21:59:28
【问题描述】:
我的javascript代码是这样的:
<script type="text/javascript">
var team = [{id:"1", name:"chelsea"}, {id:"3", name:"mu"}, {id:"5", name:"arsenal"}];
for(var i = 0; i < 5; i++) {
if(team[i].id || typeof team[i].id !== 'undefined' || team[i].id !== null) {
console.log(team[i].id)
}
else {
console.log(i+1)
}
}
</script>
如果代码运行,控制台上会出现这样的错误:
未捕获的类型错误:无法读取未定义的属性“id”
而如果变量不存在,我会添加条件
我该如何解决?
【问题讨论】:
-
使用
i < team.length。您正在遍历数组大小之外。 -
@OmG,看来我的情况不同
-
@Terry,如果我上面的代码运行,我希望控制台上的结果是这样的:
1 2 3 4 5。如果我使用您的答案,结果如下:1 3 5 4 5 -
如果你坚持在数组大小之外运行,那么首先在循环内检查
team[i]是否为假——它必须是你的 if 条件中的第一个检查。
标签: javascript arrays object for-loop