دوال المصفوفات

تعديل
نسخ الدرس
تحميل الدرس

دوال المصفوفات الشائعة

في الدرس السابق تعلمنا كيفية إنشاء المصفوفات والتعامل معها. الآن سنتعرف على الدوال المدمجة التي تجعل العمل مع المصفوفات أسهل وأقوى.

الوصول إلى العناصر

first و last

للحصول على العناصر الأولى أو الأخيرة:

take و drop

لأخذ عناصر من البداية أو تجاهلها:

معلومات عن المصفوفة

length و size و count

للحصول على عدد العناصر:

empty? و any? و none?

للتحقق من محتويات المصفوفة:

include?

للتحقق من وجود عنصر معين:

index و rindex

لإيجاد موضع عنصر:

ترتيب المصفوفة

sort

لترتيب العناصر تصاعدياً:

sort مع ترتيب مخصص

reverse

لعكس ترتيب العناصر:

shuffle

لخلط العناصر عشوائياً:

تنظيف المصفوفة

uniq

لإزالة العناصر المكررة:

compact

لإزالة قيم nil:

flatten

لتسطيح المصفوفات المتداخلة:

مثال عملي:

جدول ملخص الدوال

الدالةالوصفالمثال
firstالعنصر الأولarr.first → أول عنصر
lastالعنصر الأخيرarr.last → آخر عنصر
lengthعدد العناصرarr.length → العدد
include?هل يحتوي على قيمة؟arr.include?(x) → true/false
sortترتيب تصاعديarr.sort → مرتبة
reverseعكس الترتيبarr.reverse → معكوسة
uniqإزالة التكرارarr.uniq → بدون تكرار
compactإزالة nilarr.compact → بدون nil
flattenتسطيح المتداخلةarr.flatten → مسطحة

دوال إضافية مفيدة

min و max و sum

minmax

للحصول على الأصغر والأكبر معاً:

sample

لاختيار عنصر عشوائي:

join

لتحويل المصفوفة إلى نص:

zip

لدمج عدة مصفوفات:

أمثلة عملية

مثال 1: تنظيف بيانات

مثال 2: تحليل الدرجات

الناتج:

مثال 3: معالجة قائمة أسماء

مثال 4: دمج قوائم مهام

الناتج:

نصائح مهمة

  1. معظم الدوال لا تعدل الأصل - تُرجع مصفوفة جديدة
  2. استخدم ! للتعديل المباشر - مثل sort! و uniq! و compact!
  3. سلسل الدوال معاً - arr.compact.uniq.sort أنظف من خطوات منفصلة
  4. تحقق من الفراغ أولاً - if arr.any? قبل العمليات
  5. استخدم count بدلاً من length للعد المشروط

الفرق بين الدوال العادية ودوال البانج (!)

تمرين: تنظيف ومعالجة البيانات

حان وقت التطبيق! في محرر الشيفرة على اليسار:

المطلوب:

لديك مصفوفة بيانات غير نظيفة:

  1. نظّف البيانات (أزل nil وأزل التكرار ورتّب تصاعدياً)
  2. اطبع البيانات النظيفة باستخدام p
  3. اطبع عدد العناصر بعد التنظيف
  4. اطبع أول عنصر
  5. اطبع آخر عنصر
  6. اطبع مجموع العناصر
  7. تحقق هل تحتوي على الرقم 5 (اطبع true أو false)

تلميحات:

  • سلسل الدوال: data.compact.uniq.sort
  • استخدم .length أو .count لعدد العناصر
  • استخدم .first و .last للوصول
  • استخدم .sum للمجموع
  • استخدم .include?(5) للتحقق

الناتج المتوقع:


تذكّر: دوال المصفوفات في روبي قوية جداً وتجعل معالجة البيانات سهلة وممتعة!