数据结构基础:使用 for...in 语句迭代对象

这道题我不理解它的意思,有没有大佬指点一下。下面是题干跟代码

有时候你需要遍历一个对象中的所有键。这需要 JavaScript 中的一个特殊语法:for…in 语句。以遍历 users 对象的键为例:

for (let user in users) {
console.log(user);
};

// 输出:
Alan
Jeff
Sarah
Ryan

在这个语句中,我们定义了一个 user 变量,你可以看到,这个变量在 for…in 语句对对象的每一个键的遍历中都会被重置。

注意:
跟数组不同,对象中的键是无序的,因此一个对象中某个键的位置,或者说它出现的相对顺序,在引用或访问该键时是不确定的。

我们已经定义了一个 countOnline 函数,请在其中使用一个 for…in 语句来遍历 users 对象中的用户,并返回 online 属性为 true 的用户的数量。
users 对象中应该包含 onlinetrue 的用户对象 JeffRyan 以及 onlinefalse 的用户对象 AlanSarah

countOnline 函数应该返回 online 属性为 true 的用户的数量。

let users = {
Alan: {
age: 27,
online: false
},
Jeff: {
age: 32,
online: true
},
Sarah: {
age: 48,
online: false
},
Ryan: {
age: 19,
online: true
}
};

function countOnline(obj) {
// 请把你的代码写在这条注释以下
for(let user in obj){
if(obj[user].online==true){
return obj[user].age;
}
}
// 请把你的代码写在这条注释以上
}

console.log(countOnline(users));

我不明白你想提的问题是什么呢

就前面是题目,后面是我的代码。我想问哪里错了,为什么运行不通过。

题目是返回online为true的用户的数量,你的代码返回的是age,所以没有通过哦。

      let num =0;
      for (let user in obj) {
        if (obj[user].online == true) {
          num +=1;
        }
      }
      return num;
1赞

哦哦,是我理解错了,已解决 :heartpulse:谢谢。