使用Firebase,我正在拉一个数组:
var lists =
[{
"members": {
"R2sZlOcWW3YZLi6B0sSLjNmoIix2": "true",
"y0dKatD5onPtmdtElBpeYvYaIMq1": "true"
}
},
{
"members": {
"R2sZlOcWW3YZLi6B0sSLjNmoIix2": "true",
"y0dKatD5onPtmdtElBpeYvYaIMq1": "true"
}
},
......
]
使用
var chatCount = 0;
var multMembersCount = 0
for (let i = 0; i < lists.length; i++) {
let members = lists[i].members
if (lists[i].chat) {
chatCount += 1;
}
console.log(Object.keys(members).length)
}
我正在使用Object.keys(members).length
来查找每个成员对象的长度。日志成功写入控制台,但是,在循环结束时,我收到以下错误:
TypeError: undefined is not an object (evaluating 'Object.keys(members)')
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
使用“members ? Object.keys(members).length : 0
”代替“Object.keys(members).length
”。
如果0
是意外(假的)项目,它将评估为members
,如果不是,则评估为长度。
答案 1 :(得分:0)
修复是一个相对术语,因为没有迹象表明所需的行为是什么。避免出现错误消息的一种方法是将其解析为默认值:
console.log(Object.keys(members||{}).length)
当members
为undefined
时,将使用对象{}
。