Basic Data Structures - Check if an Object has a Property

Tell us what’s happening:
Hi, could someone please tell me why the nested if’s in my code is not correct?

Your code so far
function isEveryoneHere(userObj) {
// Only change code below this line
if (userObj.hasOwnProperty(‘Alan’)=== true){
if (userObj.hasOwnProperty(‘Jeff’)=== true){
if (userObj.hasOwnProperty(‘Sarah’)=== true){
if (userObj.hasOwnProperty(‘Ryan’)=== true){
return true
}
}
}
}
else {
return false
}

// Only change code above this line
}

console.log(isEveryoneHere(users));

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
  if (userObj.hasOwnProperty('Alan')=== true){
    if (userObj.hasOwnProperty('Jeff')=== true){
      if (userObj.hasOwnProperty('Sarah')=== true){
        if (userObj.hasOwnProperty('Ryan')=== true){
          return true
        }
      }
    }
  }
  else {
    return false
  }
    
  // Only change code above this line
}

console.log(isEveryoneHere(users));

Your browser information:

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

Challenge: Basic Data Structures - Check if an Object has a Property

Link to the challenge:

Couple of problems:

1- you do not need to explicitly check the return value of hasOwnProperty as it will trigger the if statement anyway if it evaluates to true.
2- your placement of the ifs wants the userObj to be everyone in order to return true. Try writing one if and closing it. Then another if then closing it etc. do not nest.

Thanks for the help. Was just wondering about the behavior of the if statements in JS. Nested ifs should check all conditions and then if all revert to true it should work.
Thanks again

Yes but that is not what you want. A person cannot be Ryan and Sarah and Jeff and Alan all at the same time.