--- id: 56533eb9ac21ba0edf2244c9 title: Accessing Object Properties with Variables challengeType: 1 videoUrl: '' localeTitle: الوصول إلى خصائص الكائن مع المتغيرات --- ## Description
استخدام آخر لتدوين قوس على الكائنات هو الوصول إلى خاصية يتم تخزينها كقيمة متغير. يمكن أن يكون هذا مفيدًا جدًا للتكرار من خلال خصائص الكائن أو عند الوصول إلى جدول البحث. في ما يلي مثال على استخدام متغير للوصول إلى موقع:
var dogs = {
Fido: "Mutt"، Hunter: "Doberman"، Snoopie: "Beagle"

var myDog = "Hunter" ؛
var myBreed = dogs [myDog]؛
console.log (myBreed)؛ // "دوبيرمان"
هناك طريقة أخرى لاستخدام هذا المفهوم وهي عندما يتم جمع اسم المنشأة ديناميكيًا أثناء تنفيذ البرنامج ، كما يلي:
var someObj = {
propName: "John"

وظيفة propPrefix (str) {
var s = "prop" ؛
return s + str؛
}
var someProp = propPrefix ("Name")؛ // someProp الآن يحمل القيمة "propName"
console.log (someObj [someProp])؛ // "يوحنا"
لاحظ أننا لا نستخدم علامات اقتباس حول اسم المتغير عند استخدامه للوصول إلى الخاصية لأننا نستخدم قيمة المتغير ، وليس الاسم .
## Instructions
استخدم متغير playerNumber للبحث عن المشغل 16 في testObj باستخدام testObj قوس. ثم قم بتعيين هذا الاسم إلى متغير player .
## Tests
```yml tests: - text: يجب أن يكون playerNumber رقمًا testString: 'assert(typeof playerNumber === "number", "playerNumber should be a number");' - text: يجب أن يكون player المتغير عبارة عن سلسلة testString: 'assert(typeof player === "string", "The variable player should be a string");' - text: يجب أن تكون قيمة player "مونتانا" testString: 'assert(player === "Montana", "The value of player should be "Montana"");' - text: يجب عليك استخدام تدوين قوس للوصول إلى testObj testString: 'assert(/testObj\s*?\[.*?\]/.test(code),"You should use bracket notation to access testObj");' - text: يجب عدم تعيين قيمة Montana إلى player المتغير مباشرةً. testString: 'assert(!code.match(/player\s*=\s*"|\"\s*Montana\s*"|\"\s*;/gi),"You should not assign the value Montana to the variable player directly.");' - text: يجب أن تستخدم المتغير playerNumber في تدوين playerNumber testString: 'assert(/testObj\s*?\[\s*playerNumber\s*\]/.test(code),"You should be using the variable playerNumber in your bracket notation");' ```
## Challenge Seed
```js // Setup var testObj = { 12: "Namath", 16: "Montana", 19: "Unitas" }; // Only change code below this line; var playerNumber; // Change this Line var player = testObj; // Change this Line ```
### After Test
```js console.info('after the test'); ```
## Solution
```js // solution required ```