🗺️ تدريب — الخريطة (Map)
📚 20 سؤال
⏱ 15-20 دقيقة
🏆 تصحيح فوري
🗺️ كائن Map في JavaScript
تعرف على كيفية استخدام كائن الخريطة (Map) لتخزين البيانات بشكل منظم وفعال
🎯 ما ستتعلمه في هذا التدريب
هذا التدريب التفاعلي سيساعدك على إتقان كائن Map في JavaScript من خلال:
- ✅ أسئلة تفاعلية متنوعة تشمل اختيار متعدد، إدخال نصي، وسحب وإفلات
- ✅ فهم الفرق بين Map و Object ومتى تستخدم كل منهما
- ✅ إتقان جميع طرق Map: set, get, has, delete, clear
- ✅ فهم خاصية size وكيفية التكرار على عناصر Map
- ✅ التعامل مع أنواع المفاتيح المختلفة في Map
- ✅ إمكانية إعادة التدريب لتحسين مستواك وتعزيز المفاهيم
❓ ما هو كائن Map؟
Map هو كائن في JavaScript يخزن أزواج المفتاح-قيمة (key-value pairs) ويتذكر ترتيب الإدراج الأصلي للمفاتيح.
يمكن استخدام أي قيمة (سواء كانت كائن أو قيمة بدائية) كمفتاح أو كقيمة.
// مثال: إنشاء Map وتخزين بيانات فيه
let userMap = new Map();
userMap.set('name', 'أحمد');
userMap.set('age', 25);
userMap.set('isActive', true);
let userMap = new Map();
userMap.set('name', 'أحمد');
userMap.set('age', 25);
userMap.set('isActive', true);
📦 1️⃣ طرق إنشاء Map
✅ إنشاء Map فارغ:
let myMap = new Map();
✅ إنشاء Map من مصفوفة أزواج:
let myMap = new Map([
['name', 'أحمد'],
['age', 25],
['city', 'القاهرة']
]);
['name', 'أحمد'],
['age', 25],
['city', 'القاهرة']
]);
🔄 2️⃣ الفرق بين Map و Object
// Object - المفاتيح تتحول إلى نصوص
let obj = {};
obj[1] = 'رقم'; // يتحول إلى '1'
obj[{}] = 'كائن'; // يتحول إلى '[object Object]'
// Map - يحتفظ بأنواع المفاتيح الأصلية
let map = new Map();
let objKey = {id: 1};
map.set(1, 'رقم'); // المفتاح رقم (number)
map.set(objKey, 'كائن'); // المفتاح كائن (object)
let obj = {};
obj[1] = 'رقم'; // يتحول إلى '1'
obj[{}] = 'كائن'; // يتحول إلى '[object Object]'
// Map - يحتفظ بأنواع المفاتيح الأصلية
let map = new Map();
let objKey = {id: 1};
map.set(1, 'رقم'); // المفتاح رقم (number)
map.set(objKey, 'كائن'); // المفتاح كائن (object)
| الميزة | Object | Map |
|---|---|---|
| أنواع المفاتيح | ❌ String أو Symbol فقط | ✅ أي نوع |
| ترتيب الإدراج | ⚠️ غير مضمون | ✅ يحتفظ بالترتيب |
| الحجم (size) | ❌ Object.keys(obj).length | ✅ خاصية size |
⚙️ 3️⃣ طرق Map الأساسية
let map = new Map();
// إضافة عنصر
map.set('name', 'أحمد');
// الحصول على قيمة
let name = map.get('name'); // أحمد
// التحقق من وجود مفتاح
if (map.has('name')) { // true
console.log('المفتاح موجود');
}
// حذف عنصر
map.delete('name');
// حجم Map
console.log(map.size); // 0
// مسح جميع العناصر
map.clear();
// إضافة عنصر
map.set('name', 'أحمد');
// الحصول على قيمة
let name = map.get('name'); // أحمد
// التحقق من وجود مفتاح
if (map.has('name')) { // true
console.log('المفتاح موجود');
}
// حذف عنصر
map.delete('name');
// حجم Map
console.log(map.size); // 0
// مسح جميع العناصر
map.clear();
📝 4️⃣ قواعد وإرشادات استخدام Map
💡 متى تستخدم Map؟
- ✔ عندما تحتاج مفاتيح من أنواع مختلفة (غير نصوص)
- ✔ عندما تحتاج الاحتفاظ بترتيب الإدراج
- ✔ عندما تحتاج إضافة وحذف عناصر بشكل متكرر
- ✔ عندما تحتاج معرفة الحجم بسهولة (size)