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

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

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

### ما هي الخرائط في JavaScript؟

الخرائط (Maps) هي بنية بيانات تمكنك من تخزين أزواج من المفاتيح والقيم. على عكس الكائنات العادية، يمكن أن تكون المفاتيح أي نوع من البيانات، بما في ذلك الكائنات، الدوال، أو حتى القيم الأولية مثل الأعداد والنصوص. هذا يتيح لك مرونة أكبر في إدارة البيانات.

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

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

let myMap = new Map();

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

لإضافة عناصر إلى الخريطة، يتم استخدام الدالة `set`:

myMap.set('name', 'Ali');
myMap.set('age', 30);
myMap.set(true, 'boolean key');
myMap.set({key: 'value'}, 'object key');

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

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

console.log(myMap.get('name')); // Ali
console.log(myMap.get(true)); // boolean key

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

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

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

### حذف عناصر من الخريطة

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

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

### الحصول على [شركة برمجة مصرية] حجم الخريطة

للحصول على عدد الأزواج الموجودة في الخريطة، يمكنك استخدام الخاصية `size`:

console.log(myMap.size); // عدد العناصر المتبقية في الخريطة

### إفراغ الخريطة

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

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

### التكرار عبر الخريطة

يمكنك استخدام الدالة `forEach` للتكرار عبر جميع أزواج المفاتيح والقيم في الخريطة:

myMap.set('name', 'Ali');
myMap.set('age', 30);

myMap.forEach((value, key) => {
  console.log(`${key}: ${value}`);
});

كما يمكنك استخدام حلقة `for…of` مع الدالة `entries`:

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

### مقارنة الكائنات والخرائط

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

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

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

### خاتمة [شركة برمجة مصرية]

تُعتبر الخرائط أداة قوية في JavaScript تتيح لك تخزين أزواج المفاتيح والقيم بطرق مرنة وفعالة. تفهم واستخدام الخرائط يمكن أن يُحسن بشكل كبير من كفاءة ووضوح الكود الذي تكتبه.