3.6 KiB
3.6 KiB
id, title, challengeType, forumTopicId, localeTitle
id | title | challengeType | forumTopicId | localeTitle |
---|---|---|---|---|
587d7b7d367417b2b2512b1c | Check if an Object has a Property | 1 | 301155 | 检查对象是否具有某个属性 |
Description
hasOwnProperty()
方法,另一个是in
关键字。如果我们有一个users
对象,它有一个Alan
属性,我们可以用以下两种方式之一来检查该属性在对象中是否存在:
users.hasOwnProperty('Alan');
'Alan' in users;
// 都返回 true
Instructions
users
对象和一个isEveryoneHere
函数,该函数接受users
对象作为参数。请完成该函数使其在users
对象中包含以下 4 个键Alan
、Jeff
、Sarah
和Ryan
时才返回true
,否则返回false
。
Tests
tests:
- text: <code>users</code>对象应该只含有<code>Alan</code>、<code>Jeff</code>、<code>Sarah</code>和<code>Ryan</code>4 个键。
testString: assert("Alan" in users && "Jeff" in users && "Sarah" in users && "Ryan" in users && Object.keys(users).length === 4);
- text: <code>isEveryoneHere</code>函数在<code>users</code>对象包含<code>Alan</code>、<code>Jeff</code>、<code>Sarah</code>和<code>Ryan</code>4 个键时应该返回<code>true</code>。
testString: assert(isEveryoneHere(users) === true);
- text: <code>isEveryoneHere</code>函数在<code>users</code>对象不包含<code>Alan</code>、<code>Jeff</code>、<code>Sarah</code>或<code>Ryan</code>4 个键时应该返回<code>false</code>。
testString: assert((function() { delete users.Alan; return isEveryoneHere(users) })() === false);
- text: 如果 <code>Jeff</code> 不是 <code>users</code> 对象的属性,函数 <code>isEveryoneHere</code> 应该返回 <code>false</code>。
testString: assert((function() { delete users.Jeff; return isEveryoneHere(users) })() === false);
- text: 如果 <code>Sarah</code> 不是 <code>users</code> 对象的属性,函数 <code>isEveryoneHere</code> 应该返回 <code>false</code>。
testString: assert((function() { delete users.Sarah; return isEveryoneHere(users) })() === false);
- text: 如果 <code>Ryan</code> 不是 <code>users</code> 对象的属性,函数 <code>isEveryoneHere</code> 应该返回 <code>false</code>。
testString: assert((function() { delete users.Ryan; return isEveryoneHere(users) })() === false);
Challenge Seed
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
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));