في البرمجة، المصفوفات (Arrays) هي واحدة من أهم الأدوات لتخزين البيانات والعمل عليها بشكل منظم. في JavaScript، توفر المصفوفات مجموعة واسعة من الدوال (Functions) التي تساعد في التلاعب بالبيانات بطريقة سهلة وفعالة.
في هذه المقالة، سنتناول جميع دوال المصفوفات بدءًا من الأسهل إلى الأكثر تقدمًا، مع شرح واضح وأمثلة عملية.
1. أساسيات التعديل على المصفوفات
إضافة عناصر
push(element): تضيف عنصرًا إلى نهاية المصفوفة.- مثال:
let arr = [1, 2, 3]; arr.push(4); // [1, 2, 3, 4]
- مثال:
unshift(element): تضيف عنصرًا إلى بداية المصفوفة.- مثال:
let arr = [1, 2, 3]; arr.unshift(0); // [0, 1, 2, 3]
- مثال:
إزالة عناصر
pop(): يزيل العنصر الأخير في المصفوفة ويُعيده.- مثال:
let arr = [1, 2, 3]; let removed = arr.pop(); // removed = 3, arr = [1, 2]
- مثال:
shift(): يزيل العنصر الأول في المصفوفة ويُعيده.- مثال:
let arr = [1, 2, 3]; let removed = arr.shift(); // removed = 1, arr = [2, 3]
- مثال:
2. البحث داخل المصفوفات
indexOf(element): يُعيد الفهرس الأول لعنصر معين، أو-1إذا لم يُوجد.- مثال:
let arr = [1, 2, 3]; arr.indexOf(2); // 1
- مثال:
lastIndexOf(element): يُعيد الفهرس الأخير لعنصر معين.- مثال:
let arr = [1, 2, 3, 2]; arr.lastIndexOf(2); // 3
- مثال:
includes(element): يتحقق إذا كانت المصفوفة تحتوي على العنصر (true/false).- مثال:
let arr = [1, 2, 3]; arr.includes(2); // true
- مثال:
3. التعديل والإضافة في مواقع معينة
splice(start, deleteCount, item1, item2, ...): تضيف، تحذف، أو تستبدل عناصر في موقع معين.- مثال: إضافة عند فهرس 1:
let arr = [1, 2, 3]; arr.splice(1, 0, 99); // [1, 99, 2, 3] - حذف عنصرين:
let arr = [1, 99, 2, 3]; arr.splice(1, 2); // [1, 3]
- مثال: إضافة عند فهرس 1:
4. التكرار والتحويل
forEach(callback): يُنفذ وظيفة معينة على كل عنصر في المصفوفة.- مثال:
let arr = [1, 2, 3]; arr.forEach(num => console.log(num * 2)); // 2, 4, 6
- مثال:
map(callback): يُعيد مصفوفة جديدة بعد تطبيق وظيفة معينة على كل عنصر.- مثال:
let arr = [1, 2, 3]; let doubled = arr.map(num => num * 2); // [2, 4, 6]
- مثال:
filter(callback): يُعيد العناصر التي تحقق شرطًا معينًا.- مثال:
let arr = [1, 2, 3, 4]; let even = arr.filter(num => num % 2 === 0); // [2, 4]
- مثال:
5. النسخ والتحقق
slice(start, end): يُعيد جزءًا من المصفوفة.- مثال:
let arr = [1, 2, 3, 4]; let newArr = arr.slice(1, 3); // [2, 3]
- مثال:
some(callback): يتحقق إذا كان أي عنصر يحقق شرطًا معينًا.- مثال:
let arr = [1, 2, 3]; arr.some(num => num > 2); // true
- مثال:
every(callback): يتحقق إذا كانت كل العناصر تحقق شرطًا معينًا.- مثال:
let arr = [1, 2, 3]; arr.every(num => num > 0); // true
- مثال:
6. الترتيب والدمج
sort(): يُرتب العناصر (افتراضيًا نصيًا).- مثال:
let arr = [3, 1, 4, 1]; arr.sort(); // [1, 1, 3, 4] - ترتيب رقمي:
arr.sort((a, b) => a - b); // [1, 1, 3, 4]
- مثال:
reverse(): يعكس ترتيب العناصر.- مثال:
let arr = [1, 2, 3]; arr.reverse(); // [3, 2, 1]
- مثال:
concat(): يدمج مصفوفتين أو أكثر.- مثال:
let arr1 = [1, 2]; let arr2 = [3, 4]; let combined = arr1.concat(arr2); // [1, 2, 3, 4]
- مثال:
7. الاختزال (Reduction)
reduce(callback, initialValue): يختزل المصفوفة إلى قيمة واحدة.- مثال: جمع القيم:
let arr = [1, 2, 3]; let sum = arr.reduce((total, num) => total + num, 0); // 6
- مثال: جمع القيم:
8. تحويل المصفوفة
join(separator): يُحول المصفوفة إلى نص مفصول بـseparator.- مثال:
let arr = [1, 2, 3]; let str = arr.join('-'); // "1-2-3"
- مثال:
9. التعامل مع الكائنات والمصفوفات المتقدمة
flat(depth): يسطح المصفوفات المتداخلة إلى عمق معين.- مثال:
let arr = [1, [2, [3, 4]]]; arr.flat(2); // [1, 2, 3, 4]
- مثال:
find(callback): يُعيد أول عنصر يحقق الشرط.- مثال:
let arr = [1, 2, 3, 4]; let found = arr.find(num => num > 2); // 3
- مثال:
findIndex(callback): يُعيد فهرس أول عنصر يحقق الشرط.- مثال:
let arr = [1, 2, 3, 4]; let index = arr.findIndex(num => num > 2); // 2
- مثال:
هذه كانت أهم الدوال (Functions) المستخدمة مع المصفوفات في JavaScript، مرتبة من الأسهل إلى الأكثر تعقيدًا. يمكنك البدء باستخدام الدوال الأساسية مثل push و pop، ثم التقدم لاستخدام الدوال المتقدمة مثل reduce و flat.

