我这样定义一个对象:
let users = {
Alan: {
age: 27,
online: false
},
Jeff: {
age: 32,
online: true
},
Sarah: {
age: 48,
online: false
},
Ryan: {
age: 19,
online: true
}
};
然后我仔细检查一下,然后取回名字,这就是我所期望的:
for (user in users) {
console.log(user);
}
// Alan
// Jeff
// Sarah
// Ryan
然后我执行此操作,并且得到四次未定义
for (user in users) {
console.log(user.age);
}
// undefined
// undefined
// undefined
// undefined
然后我执行此操作,然后可以访问age属性
users.Alan.age
这是怎么回事?
答案 0 :(得分:0)
您需要引用对象中的值而不是键。您可以从用户对象中选择用户,然后从年龄中选择。
for (user in users) {
console.log(users[user].age);
}
答案 1 :(得分:0)
使用户成为这样的数组会更加标准:
let users = [
{
name: 'Alan',
age: 27,
online: false
},
{
name: 'Jeff',
age: 32,
online: true
},
{
name: 'Sarah',
age: 48,
online: false
},
{
name: 'Ryan',
age: 19,
online: true
}
];
我认为这可能会“发挥”您所期望的方式。 (其中users对象的每个元素都是一个对象。)