تخيل أن المصفوفة (Array) مثل "خزانة أدراج مرقمة". كل درج له رقم، وتضع فيه ألعابك. المهم أنك تعرف في أي درج وضعت اللعبة لتسترجعها بسهولة.
ما يميزها هو النظام الصارم: اللعبة الأولى تظل في المكان الأول، والثانية في المكان الثاني.
// هذا مثال لمصفوفة بسيطة
// قمنا بإنشاء خزانة اسمها "toys" ووضعنا فيها 3 ألعاب
const toys = ["Car", "Doll", "Ball"];
// طبعاً المصفوفة نفسها تعتبر "كائن" (Object) لكنه ذكي ومرتب
console.log(toys); // سيطبع: ["Car", "Doll", "Ball"]
الأفضل والأكثر أماناً، كأنك تجمع أدواتك في حقيبة بسرعة.
// استخدمنا const لإنشاء ثابت اسمه myFavColors
// القوسين [ ] يخبران الكمبيوتر: "اصنع لي مصفوفة جديدة"
const myFavColors = ["Red", "Blue", "Green"];
// الآن لدينا مصفوفة جاهزة ومليئة بالألوان
console.log(myFavColors); // Red Blue Green
تحتاج حذر! الكمبيوتر يلعب بنا لعبة عندما نمرر رقماً واحداً.
const riskyArray = new Array(5);
// [empty × 5] (خمس خانات فارغة)
const correctArray = new Array();
correctArray[0] = 5; // النتيجة: [5]
const animals = ["Cat", "Dog", "Lion"];
// للوصول لأي لعبة، نكتب اسم المصفوفة ثم رقم مكانها
console.log(animals[0]); // "Cat" (الحيوان الأول)
console.log(animals[1]); // "Dog" (الحيوان الثاني)
console.log(animals[2]); // "Lion" (الحيوان الثالث)
console.log(animals[animals.length - 1]); // الوصول لآخر عنصر
// ماذا لو طلبنا مكان غير موجود؟
console.log(animals[10]); // undefined
length يعطيك "رقم" يخبرك كم مكان في الخزانة. وهو (آخر رقم فهرس + 1). يمكننا أيضاً تغيير حجم الخزانة بالقوة!
const numbers = [10, 20, 30, 40];
// length تسأل المصفوفة: كم طولك؟
console.log(numbers.length); // 4
// --- السحر: تغيير الحجم ---
// 1. تكبير المصفوفة
numbers.length = 6;
// النتيجة: [10, 20, 30, 40, empty × 2]
// 2. تصغير المصفوفة (حذف نهائي!)
numbers.length = 2;
// النتيجة: [10, 20]
أداة "غبية" تقول عن المصفوفة "object" فقط.
أداة "ذكية" تعرف المصفوفة بدقة مطلقة.
const myArr = [1, 2, 3];
const myObj = { name: "Ali" };
// 1. تجربة typeof (الأداة الغبية)
console.log(typeof myArr); // "object" ❌
console.log(typeof myObj); // "object" ❌
// 2. تجربة Array.isArray() (الأداة الذكية)
console.log(Array.isArray(myArr)); // true ✅
console.log(Array.isArray(myObj)); // false ✅
تحويل النصوص أو الـ NodeList إلى مصفوفة حقيقية.
let chars = Array.from("Hello"); // ['H','e','l','l','o']