The Code Fix

🟨 شرح جافاسكريبت

المصفوفات (Arrays)

ما هي المصفوفة؟

قائمة مرتّبة من القيم تحت اسم واحد:

let fruits = ["تفاح", "موز", "عنب"];
let numbers = [1, 2, 3, 4];
let mixed = [1, "نص", true];

الوصول والطول

fruits[0]          // "تفاح" (الفهرس يبدأ من 0)
fruits[fruits.length - 1]  // آخر عنصر
fruits.length      // 3

الإضافة والحذف

fruits.push("برتقال");   // إضافة للنهاية
fruits.pop();            // حذف من النهاية
fruits.unshift("مانجو"); // إضافة للبداية
fruits.shift();          // حذف من البداية
fruits.splice(1, 1);     // حذف عنصر من موضع معيّن

الدوال التحويلية الأهم 🌟

forEach — تنفيذ على كل عنصر

fruits.forEach(fruit => console.log(fruit));

map — تحويل لمصفوفة جديدة

let nums = [1, 2, 3];
let doubled = nums.map(n => n * 2);   // [2, 4, 6]

filter — ترشيح بشرط

let evens = [1, 2, 3, 4].filter(n => n % 2 === 0);  // [2, 4]

reduce — تجميع لقيمة واحدة

let sum = [1, 2, 3, 4].reduce((total, n) => total + n, 0);  // 10

find و some و every

[1, 2, 3].find(n => n > 1)    // 2 (أول مطابق)
[1, 2, 3].some(n => n > 2)    // true (هل يوجد مطابق؟)
[1, 2, 3].every(n => n > 0)   // true (هل كلها مطابقة؟)

دوال مفيدة أخرى

[3, 1, 2].sort()             // [1, 2, 3]
[3, 1, 2].sort((a, b) => b - a) // [3, 2, 1] تنازلي
[1, 2, 3].reverse()          // [3, 2, 1]
[1, 2, 3].includes(2)        // true
[1, 2, 3].join(" - ")        // "1 - 2 - 3"
[1, 2].concat([3, 4])        // [1, 2, 3, 4]

النسخ والدمج بـ Spread

let copy = [...fruits];
let merged = [...arr1, ...arr2];

الأخطاء الشائعة

  • ❌ نسيان أن الفهرس يبدأ من 0arr[1] هو العنصر الثاني.
  • ❌ الخلط بين map وforEachmap تُرجع مصفوفة جديدة، forEach لا.
  • sort() للأرقام بلا دالة مقارنة → يرتّبها كنصوص (10 قبل 2)! استخدم (a,b)=>a-b.

خلاصة

المصفوفات قوائم مرتّبة. أتقن push/pop، ثم الدوال التحويلية القوية map وfilter وreduce وfind — هي جوهر معالجة البيانات في JavaScript الحديثة.