46- دروس جافا سكربت – JS Loop For In

### شرح [شركة برمجة مصرية] مفصل لـ “Loop For In” في لغة JavaScript

تُعتبر الجافا سكريبت واحدة من اللغات الأكثر شيوعًا في تطوير الويب، وتقدم مجموعة متنوعة من الأدوات للتعامل مع البيانات. إحدى هذه الأدوات هي الحلقة التكرارية “For In”، والتي تُستخدم للتكرار عبر خصائص الكائنات.

#### تعريف “Loop For In”

الحلقة “For In” تُستخدم بشكل رئيسي لاستعراض خصائص كائنات JavaScript. وهي تقوم بالمرور على كل خاصية من خصائص الكائن، مما يجعلها مفيدة جدًا عند التعامل مع الكائنات.

#### بناء الجملة

for (variable in object) {
    // الكود الذي سيتم تنفيذه لكل خاصية
}

– **variable**: اسم المتغير الذي سيحتوي على اسم الخاصية الحالية في كل تكرار.
– **object**: الكائن الذي ترغب في استعراض خصائصه.

#### كيفية عملها

تبدأ الحلقة بتحديد متغير سيحمل في كل مرة اسم خاصية من خصائص الكائن، ثم يتم تنفيذ الكود الموجود داخل جسم الحلقة لكل خاصية من هذه الخصائص.

#### أمثلة توضيحية

##### المثال الأول: استعراض خصائص كائن

let person = {
    name: "أحمد",
    age: 30,
    occupation: "مهندس"
};

for (let key in person) {
    console.log(`${key}: ${person[key]}`);
}

**النتيجة:**
“`
name: أحمد
age: 30
occupation: مهندس
“`

في هذا المثال، تقوم الحلقة “For In” بالمرور على خصائص الكائن `person` وعرض الاسم والقيمة لكل خاصية.

##### المثال الثاني: التكرار داخل مصفوفة

على الرغم من أن “For In” تُستخدم عادة للكائنات، يمكن استخدامها أيضًا مع المصفوفات، ولكن يجب توخي الحذر لأنها ستقوم بتكرار الفهارس وليس القيم.

let colors = ["أحمر", "أخضر", "أزرق"];

for (let index in colors) {
    console.log(`${index}: ${colors[index]}`);
}

**النتيجة:**
“`
0: أحمر
1: أخضر
2: أزرق
“`

هنا، تقوم الحلقة بالتكرار عبر الفهارس، مما يعرض كل فهرس والقيمة المقابلة له في المصفوفة.

##### المثال الثالث: استخدام “For In” مع الكائنات المتداخلة

let car = {
    brand: "تويوتا",
    model: "كورولا",
    specifications: {
        color: "أسود",
        year: 2020
    }
};

for (let key in car) {
    if (typeof car[key] === 'object') {
        for (let subKey in car[key]) {
            console.log(`${subKey}: ${car[key][subKey]}`);
        }
    } else {
        console.log(`${key}: ${car[key]}`);
    }
}

**النتيجة:**
“`
brand: تويوتا
model: كورولا
color: أسود
year: 2020
“`

في هذا المثال، نتعامل مع كائن يحتوي على كائنات متداخلة. نقوم باستخدام حلقة “For In” داخل حلقة أخرى للوصول إلى الخصائص المتداخلة.

#### ملاحظات هامة

– **الأداء**: يمكن أن تكون “For In” أبطأ من الحلقات الأخرى مثل “For” و”While” عند التعامل مع المصفوفات، لذا يُفضل استخدامها مع الكائنات.
– **الترتيب**: لا تضمن “For In” الترتيب الذي سيتم فيه استعراض الخصائص، خاصةً في الكائنات.

### الخاتمة

تعتبر حلقة “For In” أداة قوية ومرنة في JavaScript، تُستخدم بشكل أساسي للتعامل مع الكائنات. من المهم فهم كيفية عملها [شركة برمجة مصرية] واستخدامها بشكل صحيح للحصول على أفضل أداء وفعالية في الكود الخاص بك.