3.6 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7b7d367417b2b2512b1c | オブジェクトにプロパティがあるかどうかを確認する | 1 | 301155 | check-if-an-object-has-a-property |
--description--
オブジェクトのキーの追加、変更、削除について学びました。 しかし、オブジェクトに特定のプロパティがあるかどうかを知りたいだけの場合はどうすればよいでしょうか? JavaScript には、そのことを調べるための 2 つの異なる方法があります。 1 つは hasOwnProperty()
メソッドを使用する方法で、もう 1 つは in
キーワードを使用する方法です。 Alan
というプロパティを持つオブジェクト users
がある場合、次のいずれかの方法でその存在を確認することができます。
users.hasOwnProperty('Alan');
'Alan' in users;
どちらも true
を返します。
--instructions--
渡されたオブジェクトに Alan
、Jeff
、Sarah
、Ryan
の 4 つの名前すべてが含まれている場合は true
を返し、そうでない場合は false
を返すように、関数の記述を完成させてください。
--hints--
users
オブジェクトに直接アクセスすることはできません。
assert(code.match(/users/gm).length <= 2)
users
オブジェクトには Alan
、Jeff
、Sarah
、Ryan
のキーのみを含めます。
assert(
'Alan' in users &&
'Jeff' in users &&
'Sarah' in users &&
'Ryan' in users &&
Object.keys(users).length === 4
);
関数 isEveryoneHere
は、Alan
、Jeff
、Sarah
、Ryan
が渡されたオブジェクトのプロパティである場合、true
を返す必要があります。
assert(isEveryoneHere(users) === true);
関数 isEveryoneHere
は、Alan
が渡されたオブジェクトのプロパティではない場合、false
を返す必要があります。
assert(
(function () {
delete users.Alan;
return isEveryoneHere(users);
})() === false
);
関数 isEveryoneHere
は、Jeff
が渡されたオブジェクトのプロパティではない場合、false
を返す必要があります。
assert(
(function () {
delete users.Jeff;
return isEveryoneHere(users);
})() === false
);
関数 isEveryoneHere
は、Sarah
が渡されたオブジェクトのプロパティではない場合、false
を返す必要があります。
assert(
(function () {
delete users.Sarah;
return isEveryoneHere(users);
})() === false
);
関数 isEveryoneHere
は、Ryan
が渡されたオブジェクトのプロパティではない場合、false
を返す必要があります。
assert(
(function () {
delete users.Ryan;
return isEveryoneHere(users);
})() === false
);
--seed--
--seed-contents--
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
// Only change code above this line
}
console.log(isEveryoneHere(users));
--solutions--
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) {
return [
'Alan',
'Jeff',
'Sarah',
'Ryan'
].every(user => userObj.hasOwnProperty(user));
}
console.log(isEveryoneHere(users));