Test failure The users object should not be accessed directly

Tell us what’s happening:
Describe your issue in detail here.
All test cases have passed except " The users object should not be accessed directly"

  **Your code so far**

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

function isEveryoneHere(userObj) {
// Only change code below this line
const usersKey = ['Alan', 'Jeff', 'Sarah', 'Ryan'];
let allPresent = true;

usersKey.map((userKey) => {
  allPresent = allPresent && (userKey in userObj)
})

return allPresent;
// Only change code above this line
}

console.log(isEveryoneHere(users));
  **Your browser information:**

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36

Challenge: Check if an Object has a Property

Link to the challenge:

This is only passing the other tests by accident. You’ve hardcoded a list of user names, and you aren’t checking if the users are online.

This will return true when it should be false:

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

This will return false when it should be true:

let users = {
Frank: {
  age: 27,
  online: true
},
Gary: {
  age: 32,
  online: true
},
Mary: {
  age: 48,
  online: true
},
David: {
  age: 19,
  online: true
}
};

Also, map is for mapping all the values in an array from their current value to a different value: it’s not for side-effects, it’s not just a loop replacement. forEach exists for doing that

2 Likes