2018-10-12 16:35:31 -04:00
|
|
|
---
|
2019-06-21 15:05:33 -07:00
|
|
|
title: Iterate Through the Keys of an Object with a for...in Statement
|
2018-10-12 16:35:31 -04:00
|
|
|
localeTitle: يتكرر عبر مفاتيح كائن مع لـ ... في بيان
|
|
|
|
---
|
|
|
|
## يتكرر عبر مفاتيح كائن مع لـ ... في بيان
|
|
|
|
|
|
|
|
طريقة:
|
|
|
|
|
|
|
|
* ملاحظة: ستتسبب `dot-notation` حدوث أخطاء في هذا التحدي.
|
|
|
|
* يجب استخدام الترميز `[square-bracket]` لاستدعاء اسم خاصية متغير.
|
|
|
|
* التعليمة البرمجية التالية لن تعمل.
|
|
|
|
|
|
|
|
### مثال 1:
|
|
|
|
|
2019-05-05 11:26:22 -07:00
|
|
|
```javascript
|
|
|
|
|
|
|
|
for (let user in obj) {
|
|
|
|
if(obj.user.online === true) {
|
|
|
|
//code
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|
2018-10-12 16:35:31 -04:00
|
|
|
|
|
|
|
* يوضح المثال 2 كيفية استخدام الترميز `[square-bracket]` في تنفيذ الشفرة.
|
|
|
|
|
|
|
|
### المثال 2:
|
|
|
|
|
2019-05-05 11:26:22 -07:00
|
|
|
```javascript
|
|
|
|
|
|
|
|
for (let user in obj) {
|
|
|
|
if(obj[user].online === true) {
|
|
|
|
//code
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|
2018-10-12 16:35:31 -04:00
|
|
|
|
|
|
|
### حل:
|
|
|
|
|
2019-06-20 14:05:02 -07:00
|
|
|
```javascript
|
|
|
|
let users = {
|
|
|
|
Alan: {
|
|
|
|
age: 27,
|
|
|
|
online: false
|
|
|
|
},
|
|
|
|
Jeff: {
|
|
|
|
age: 32,
|
|
|
|
online: true
|
|
|
|
},
|
|
|
|
Sarah: {
|
|
|
|
age: 48,
|
|
|
|
online: false
|
|
|
|
},
|
|
|
|
Ryan: {
|
|
|
|
age: 19,
|
|
|
|
online: true
|
|
|
|
}
|
|
|
|
};
|
|
|
|
function countOnline(obj) {
|
|
|
|
// change code below this line
|
|
|
|
let result = 0;
|
|
|
|
for (let user in obj) {
|
|
|
|
if(obj[user].online === true) {
|
|
|
|
result++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
// change code above this line
|
|
|
|
}
|
|
|
|
console.log(countOnline(users));
|
|
|
|
```
|