53- دروس جافا سكربت – JS Maps

### مقدمة إلى الخرائط في JavaScript

تعتبر الخرائط (Maps) في JavaScript واحدة من الهياكل البياناتية المميزة التي توفر طريقة مرنة وفعالة لتخزين البيانات في شكل أزواج مفتاح-قيمة. على الرغم من أن الكائنات (Objects) في JavaScript كانت تستخدم تقليديًا لهذا الغرض، إلا [شركة برمجة مصرية] أن الخرائط تقدم بعض الميزات الفريدة التي تجعلها الخيار الأفضل في بعض السيناريوهات.

### ما هي الخرائط (Maps)؟

الخرائط هي بنية بيانات مدمجة في JavaScript تم تقديمها في ECMAScript 6 (ES6). وهي تسمح بتخزين أزواج مفتاح-قيمة حيث يمكن أن يكون كل من المفتاح والقيمة من أي نوع، بما في ذلك الكائنات (Objects) والوظائف (Functions).

### مزايا استخدام الخرائط

1. **المرونة في نوع المفتاح**: على عكس الكائنات، التي تقيد المفاتيح لتكون سلاسل نصية (Strings) أو رموز (Symbols)، تسمح الخرائط باستخدام أي نوع من القيم كمفتاح، مما يوفر مرونة أكبر.

2. **الحفاظ على الترتيب**: الخرائط تحتفظ بترتيب الإدخال، بينما الكائنات لا تضمن ترتيبًا معينًا عند التكرار.

3. **أداء أفضل في بعض العمليات**: الخرائط تقدم أداءً أفضل عند التعامل مع عمليات إضافة أو حذف العناصر بشكل متكرر.

### كيفية إنشاء واستخدام الخرائط

#### إنشاء خريطة

يمكنك إنشاء خريطة جديدة باستخدام الكلمة المفتاحية `new Map()`:

let myMap = new Map();

#### إضافة عناصر إلى الخريطة

يمكنك استخدام الدالة `set` لإضافة أزواج مفتاح-قيمة إلى الخريطة:

myMap.set('name', 'Ahmed');
myMap.set('age', 30);
myMap.set(1, 'Number key');

#### الوصول إلى القيم

يمكنك استخدام الدالة `get` للوصول إلى القيم المخزنة في الخريطة باستخدام المفتاح:

console.log(myMap.get('name')); // Ahmed
console.log(myMap.get(1)); // Number key

#### التحقق من وجود مفتاح

يمكنك استخدام الدالة `has` للتحقق مما إذا كانت الخريطة تحتوي على مفتاح معين:

console.log(myMap.has('age')); // true
console.log(myMap.has('gender')); // false

#### حذف العناصر

يمكنك استخدام الدالة `delete` لإزالة عنصر من الخريطة:

myMap.delete('age');
console.log(myMap.has('age')); // false

#### مسح الخريطة

يمكنك استخدام الدالة `clear` لإزالة جميع العناصر من الخريطة:

myMap.clear();
console.log(myMap.size); // 0

### التكرار على الخرائط

يمكنك التكرار على الخرائط باستخدام حلقة `for…of`. الخرائط توفر ثلاث طرق مختلفة للتكرار: الدخول عبر المفاتيح، أو القيم، أو أزواج المفتاح-قيمة.

#### التكرار عبر المفاتيح

for (let key of myMap.keys()) {
    console.log(key);
}

#### التكرار عبر القيم

for (let value of myMap.values()) {
    console.log(value);
}

#### التكرار عبر أزواج المفتاح-قيمة

for (let [key, value] of myMap.entries()) {
    console.log(`${key}: ${value}`);
}

### استخدامات الخرائط

تعتبر الخرائط مفيدة في السيناريوهات التي تحتاج فيها إلى الاحتفاظ بترتيب الإدخال، أو عندما تكون المفاتيح من أنواع غير تقليدية مثل الكائنات أو الوظائف. كما أنها توفر أداءً محسّنًا في حالات التعديل المكثف للبيانات.

### الخاتمة

تعتبر الخرائط إضافة قوية إلى JavaScript، حيث توفر مرونة وكفاءة أكبر مقارنةً بالكائنات التقليدية. سواء كنت تحتاج إلى [شركة برمجة مصرية] تخزين بيانات معقدة أو التعامل مع عمليات إدخال وإخراج متكررة، فإن الخرائط تقدم حلاً مثاليًا لهذه التحديات.