3.7 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 587d7b7d367417b2b2512b1c | تحقق مما إذا كان الكائن (Object) يحتوي على خاصية (Property) | 1 | 301155 | check-if-an-object-has-a-property |
--description--
الآن يمكننا إضافة وتعديل وإزالة الهُوِيَّات (keys) من الكائنات (objects). ولكن ماذا لو أردنا فقط معرفة إذا كان object يملك خاصية معينة؟ يوفر لنا JavaScript طريقتين مختلفتين لفعل ذلك. تستخدم أحدهما طريقة hasOwnProperty() وتستخدم الأخرى كلمة in. إذا كان لدينا كائن users مع خاصية Alan، يمكننا التحقق من وجودها بأي من الطريقتين التاليتين:
users.hasOwnProperty('Alan');
'Alan' in users;
وسترجع كليتهما true.
--instructions--
أنهي كتابة الوظيفة بحيث ترجع true إذا كان الكائن (object) الذي مرر إليها يحتوي على جميع الأسماء الأربعة، Alan, و Jeff, و Sarah, و Ryan, وترجع false خلاف ذلك.
--hints--
يجب عدم أستخدام إلى object باسم users قاصدًا
assert(code.match(/users/gm).length <= 2)
يجب أن يحتوي object باسم users فقط على الهُوِيَّات Alan, وJeff, وSarah, و Ryan
assert(
'Alan' in users &&
'Jeff' in users &&
'Sarah' in users &&
'Ryan' in users &&
Object.keys(users).length === 4
);
يجب أن يرجع الوظيفة isEveryoneHere حالة true إذا Alan، وJeff، وSarah، و Ryan هي خصائص في الكائن (object) الذي تم تمريره إلى الوظيفة.
assert(isEveryoneHere(users) === true);
يجب أن يرجع الوظيفة isEveryoneHere حالة false إذا Alan ليست خاصية في كائن (object) الذي تم تمريره.
assert(
(function () {
delete users.Alan;
return isEveryoneHere(users);
})() === false
);
يجب أن يرجع الوظيفة isEveryoneHere حالة false إذا Jeff ليست خاصية في كائن (object) الذي تم تمريره.
assert(
(function () {
delete users.Jeff;
return isEveryoneHere(users);
})() === false
);
يجب أن يرجع الوظيفة isEveryoneHere حالة false إذا Sarah ليست خاصية في كائن (object) الذي تم تمريره.
assert(
(function () {
delete users.Sarah;
return isEveryoneHere(users);
})() === false
);
يجب أن يرجع الوظيفة isEveryoneHere حالة false إذا Ryan ليست خاصية في كائن (object) الذي تم تمريره.
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));