Files
freeCodeCamp/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-data-structures/check-if-an-object-has-a-property.md
2022-10-20 09:13:17 -07:00

3.5 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));