دوال المصفوفات (Arrays) في JavaScript

في البرمجة، المصفوفات (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]
      

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.

 

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *