mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-01-05 03:05:40 -05:00
102 lines
2.8 KiB
Markdown
102 lines
2.8 KiB
Markdown
---
|
|
id: 587d7b7c367417b2b2512b19
|
|
title: تعديل كائن متداخل داخل كائن (Modify an Object Nested Within an Object)
|
|
challengeType: 1
|
|
forumTopicId: 301164
|
|
dashedName: modify-an-object-nested-within-an-object
|
|
---
|
|
|
|
# --description--
|
|
|
|
ألقي نَّظْرَة على كائن أكثر تعقيداً قليلاً. يمكن أن تكون خصائص object متداخلة إلى عمق اعتباطي، ويمكن أن تكون قيمهم أي نوع من البيانات المدعومة من قبل JavaScript، بما في ذلك القائمات (arrays) حتى الكائنات (objects) أخرى. انظر إلى ما يلي:
|
|
|
|
```js
|
|
let nestedObject = {
|
|
id: 28802695164,
|
|
date: 'December 31, 2016',
|
|
data: {
|
|
totalUsers: 99,
|
|
online: 80,
|
|
onlineStatus: {
|
|
active: 67,
|
|
away: 13,
|
|
busy: 8
|
|
}
|
|
}
|
|
};
|
|
```
|
|
|
|
`nestedObject` له ثلاث خواص: `id` (القيمة رَقَم)، `date` (القيمة هي string)، و `data` (القيمة object مع بنيته المتداخلة). ومع أن الهياكل يمكن أن تصبح معقدة بسرعة، إلا أننا لا نزال نستطيع استخدام نفس الوظائف للوصول إلى المعلومات التي تحتاجها. لتعيين قيمة `10` إلى خاصية `busy` من object المتداخل `onlineStatus`، نحن نستخدم dot notation للإشارة إلى الخاصية:
|
|
|
|
```js
|
|
nestedObject.data.onlineStatus.busy = 10;
|
|
```
|
|
|
|
# --instructions--
|
|
|
|
هنا تعرف كائن `userActivity`، الذي يتضمن object آخر داخله. عيّن قيمة هُوِيَّة `online` بقيمة `45`.
|
|
|
|
# --hints--
|
|
|
|
`userActivity` يجب أن يحتوي على الخواص `id`, و `date`, و `data`.
|
|
|
|
```js
|
|
assert(
|
|
'id' in userActivity && 'date' in userActivity && 'data' in userActivity
|
|
);
|
|
```
|
|
|
|
`userActivity` يجب أن يحتوي على هُوِيَّة `data` بقيمة object يحتوي على الهُوِيَّات الآتية `totalUsers` و `online`.
|
|
|
|
```js
|
|
assert('totalUsers' in userActivity.data && 'online' in userActivity.data);
|
|
```
|
|
|
|
الخاصية `online` المتداخلة في هُوِيَّة `data` من `userActivity` يجب أن تكون قيمتها `45`
|
|
|
|
```js
|
|
assert(userActivity.data.online === 45);
|
|
```
|
|
|
|
يجب تعيين خاصية `online` باستخدام dot او علامات الأقواس.
|
|
|
|
```js
|
|
assert.strictEqual(code.search(/online: 45/), -1);
|
|
```
|
|
|
|
# --seed--
|
|
|
|
## --seed-contents--
|
|
|
|
```js
|
|
let userActivity = {
|
|
id: 23894201352,
|
|
date: 'January 1, 2017',
|
|
data: {
|
|
totalUsers: 51,
|
|
online: 42
|
|
}
|
|
};
|
|
|
|
// Only change code below this line
|
|
|
|
// Only change code above this line
|
|
|
|
console.log(userActivity);
|
|
```
|
|
|
|
# --solutions--
|
|
|
|
```js
|
|
let userActivity = {
|
|
id: 23894201352,
|
|
date: 'January 1, 2017',
|
|
data: {
|
|
totalUsers: 51,
|
|
online: 42
|
|
}
|
|
};
|
|
|
|
userActivity.data.online = 45;
|
|
```
|