[英]Length of empty array in javascript
所以我正在尝试做最基本的事情之一,我想知道我的方法有什么问题。
我有一个包含房间的物体
{ rooms:
{ ijxeczyu:
{ Id: 'ijxeczyu',
teacherName: 'testteacher',
teacherId: '/#Ikosyfr1NtDcpKbaAAAA',
clients: [] } },
getRooms: [Function],
addRoom: [Function] }
现在我想将他们的信息呈现给玉器中的一张桌子。 为此,我想提取重要内容并将其推送到数组中
function makeArray(obj) {
var roomArray = [];
for (var room in obj) {
roomArray.push({
roomId : room.Id,
teacher : room.teacherName,
clients : room.clients.length || 0
})
}
return roomArray;
}
相当容易。 但是我不能让那个空的客户端数组起作用。 TypeError: Cannot read property 'length' of undefined
不是|| 0
确切含义。 || 0
部分应该抓住?
为什么不起作用? 如果没有条目,如何读取数组的长度或0
?
room.clients
undefined
,这就是为什么您会收到该错误。 undefined
的原因是因为room
是一个字符串。
for..in
循环遍历对象的键。 这意味着, room === "ijxeczyu"
,假设你传递你的rooms
对象。 要访问该对象,您必须在该键处访问该对象。
for (var name in obj) {
var room = obj[name];
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.