2.9 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 587d7b7c367417b2b2512b1a | الوصول إلى أسماء الخاصية (Property) برمز القوس Bracket Notation | 1 | 301150 | access-property-names-with-bracket-notation |
--description--
في تحدي الكائن الأول ذكرنا استخدام علامات الأقواس كوسيلة للوصول إلى قيم الخاصية باستخدام تقييم متغير. على سبيل المثال، تخيل أن كائننا foods يستخدمه مكنة لتسجيل النقود في محل تجارة. لدينا وظيفة ما و التي تعين selectedFood ونحن نريد التحقق من كائن foods للتأكد من وجود ذلك الطعام. وقد يبدو ذلك كالتالي:
let selectedFood = getCurrentFood(scannedItem);
let inventory = foods[selectedFood];
سيقوم هذا الكود بتقييم القيمة المخزنة في متغير selectedFood وإرجاع قيمة هذا المفتاح في كائن foods، أو undefined إذا لم يكن موجودا. Bracket notation مفيد جداً لأن خصائص الكائن في بعض الأحيان غير معروفة قبل وقت التشغيل أو نحتاج إلى الوصول إليها بطريقة أكثر ديناميكية.
--instructions--
لقد حددنا الوظيفة checkInventory، التي تتلقى عنصر scannedItem كحجة. انتج القيمة الحالية لمفتاح scannedItem في الكائن foods. يمكنك أن تفترض أنه سيتم توفير المفاتيح الصحيحة فقط كحجة لـ checkInventory.
--hints--
checkInventory يجب أن تكون وظيفة.
assert.strictEqual(typeof checkInventory, 'function');
يجب أن يحتوي الكائن foods على أزواج key-value التالية فقط: apples: 25, وoranges: 32, وplums: 28, وbananas: 13, وgrapes: 35, وstrawberries: 27.
assert.deepEqual(foods, {
apples: 25,
oranges: 32,
plums: 28,
bananas: 13,
grapes: 35,
strawberries: 27
});
checkInventory("apples") يجب أن ينتج 25.
assert.strictEqual(checkInventory('apples'), 25);
checkInventory("bananas") يجب أن ينتج 13.
assert.strictEqual(checkInventory('bananas'), 13);
checkInventory("strawberries") يجب أن ينتج 27.
assert.strictEqual(checkInventory('strawberries'), 27);
--seed--
--seed-contents--
let foods = {
apples: 25,
oranges: 32,
plums: 28,
bananas: 13,
grapes: 35,
strawberries: 27
};
function checkInventory(scannedItem) {
// Only change code below this line
// Only change code above this line
}
console.log(checkInventory("apples"));
--solutions--
let foods = {
apples: 25,
oranges: 32,
plums: 28,
bananas: 13,
grapes: 35,
strawberries: 27
};
function checkInventory(scannedItem) {
return foods[scannedItem];
}