--- id: 587d7b7d367417b2b2512b1c title: Check if an Object has a Property challengeType: 1 forumTopicId: 301155 localeTitle: Проверьте, имеет ли объект свойство --- ## Description
Теперь мы можем добавлять, изменять и удалять ключи из объектов. Но что, если мы просто хотим узнать, обладает ли объект конкретным свойством? JavaScript предоставляет нам два разных способа сделать это. Один использует hasOwnProperty() метод , а другой использует in ключевом слове. Если у нас есть объектные users с собственностью Alan , мы можем проверить его наличие одним из следующих способов:
users.hasOwnProperty ( 'Алан');
«Алан» у пользователей;
// оба возвращают true
## Instructions
Мы создали объект, users , с некоторыми пользователями в нем, а функция isEveryoneHere , которую мы передаем объекту users в качестве аргумента. Завершите запись этой функции, чтобы она возвращала значение true только если объект users содержит все четыре имени: Alan , Jeff , Sarah и Ryan , как ключи, и false противном случае.
## Tests
```yml tests: - text: The users object should only contain the keys Alan, Jeff, Sarah, and Ryan testString: assert("Alan" in users && "Jeff" in users && "Sarah" in users && "Ryan" in users && Object.keys(users).length === 4); - text: The function isEveryoneHere should return true if Alan, Jeff, Sarah, and Ryan are properties on the users object testString: assert(isEveryoneHere(users) === true); - text: The function isEveryoneHere should return false if Alan is not a property on the users object testString: assert((function() { delete users.Alan; return isEveryoneHere(users) })() === false); - text: The function isEveryoneHere should return false if Jeff is not a property on the users object testString: assert((function() { delete users.Jeff; return isEveryoneHere(users) })() === false); - text: The function isEveryoneHere should return false if Sarah is not a property on the users object testString: assert((function() { delete users.Sarah; return isEveryoneHere(users) })() === false); - text: The function isEveryoneHere should return false if Ryan is not a property on the users object testString: assert((function() { delete users.Ryan; return isEveryoneHere(users) })() === false); ```
## Challenge Seed
```js let users = { Alan: { age: 27, online: true }, Jeff: { age: 32, online: true }, Sarah: { age: 48, online: true }, Ryan: { age: 19, online: true } }; function isEveryoneHere(obj) { // change code below this line // change code above this line } console.log(isEveryoneHere(users)); ```
## Solution
```js let users = { Alan: { age: 27, online: true }, Jeff: { age: 32, online: true }, Sarah: { age: 48, online: true }, Ryan: { age: 19, online: true } }; function isEveryoneHere(obj) { return [ 'Alan', 'Jeff', 'Sarah', 'Ryan' ].every(i => obj.hasOwnProperty(i)); } console.log(isEveryoneHere(users)); ```