请问这个用户数量求和在for循环里let c=0,满足条件C++有错误吗


#1

Tell us what’s happening:

Your code so far


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){
    let c=0;
    if(user.online == true)
    c++;
}
return c ;
  // 请把你的代码写在这条注释以上
}

console.log(countOnline(users));

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.one/javascript-algorithms-and-data-structures/basic-data-structures/-iterate-through-the-keys-of-an-object-with-a-for---in-statement


#2

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

1.let 有块级作用域,for循环外部访问不到
2.for in 循环得到的是key 纯字符串,需要obj[key]获取内容


#3

谢谢帮忙,已经解决了,这里要用obj[user].online === true(方括号访问对象的键)才可以。