0Pricing
Ruby Academy · درس

map وselect وreject

التحويل والتصفية

map وselect وreject درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.

التحويل باستخدام map

ينشئ map مصفوفة جديدة عبر تشغيل الكتلة على كل عنصر. ولا تتغير المصفوفة الأصلية.

nums = [1, 2, 3]
doubled = nums.map { |n| n * 2 }
puts doubled.inspect
puts nums.inspect

map مع السلاسل النصية

يمكن لـ map تحويل أي نوع من القيم، مثل تحويل الكلمات إلى أحرف كبيرة.

words = ["red", "green"]
puts words.map { |w| w.upcase }.inspect

الاختصار باستخدام Symbol

عندما تستدعي الكتلة أسلوبًا واحدًا فقط، استخدموا &:method كاختصار.

words = ["a", "b", "c"]
puts words.map(&:upcase).inspect

map مع الفهرس

سلسِلوا with_index عندما تحتاجون أيضًا إلى المواضع.

letters = %w[a b c]
result = letters.map.with_index { |l, i| "#{i}:#{l}" }
puts result.inspect

التصفية باستخدام select

يحتفظ select، وهو اسم مستعار لـfilter، بالعناصر التي تكون الكتلة عندها صحيحة فقط.

nums = [1, 2, 3, 4, 5, 6]
evens = nums.select { |n| n.even? }
puts evens.inspect

تصفية السلاسل النصية

يعمل select مع أي شرط، مثل الاحتفاظ بالكلمات الطويلة.

words = ["hi", "hello", "hey", "welcome"]
puts words.select { |w| w.length > 3 }.inspect

الإزالة باستخدام reject

يُعد reject عكس select؛ فهو يزيل العناصر التي تكون الكتلة عندها صحيحة.

nums = [1, 2, 3, 4]
puts nums.reject { |n| n.even? }.inspect

تسلسل map وselect

بما أن كل استدعاء يعيد مصفوفة جديدة، يمكنكم تسلسل الأساليب في مسار معالجة.

nums = [1, 2, 3, 4, 5]
result = nums.select { |n| n.odd? }.map { |n| n * 10 }
puts result.inspect

filter_map

يجمع filter_map بين التصفية والتحويل في مرور واحد؛ إذ يحتفظ بنتائج الكتلة غير المساوية لـ false.

nums = [1, 2, 3, 4]
result = nums.filter_map { |n| n * 2 if n.even? }
puts result.inspect

flat_map

يحوّل flat_map العناصر ثم يبسط مستوى واحدًا من المصفوفات المتداخلة.

pairs = [[1, 2], [3, 4]]
puts pairs.flat_map { |p| p }.inspect

partition

يقسم partition مجموعةً إلى مصفوفتين: العناصر المطابقة وغير المطابقة.

nums = [1, 2, 3, 4, 5]
evens, odds = nums.partition { |n| n.even? }
puts evens.inspect
puts odds.inspect

اختبار سريع

تحققوا من فهمكم للتحويل والتصفية.

مراجعة

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

  • استخدام map للتحويل، مع اختصار &:method
  • select/filter وreject
  • التسلسل وfilter_map وflat_map وpartition

التالي: reduce وeach_with_object للتجميع.

puts [1, 2, 3, 4].select(&:even?).map { |n| n * n }.inspect

الأسئلة الشائعة

هل درس «map وselect وreject» مجاني؟

نعم — نص درس «map وselect وreject» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ماذا ستتعلم في «map وselect وreject»؟

التحويل والتصفية تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟

لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «map وselect وreject»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟

نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إنشاء النطاقات
  2. وحدة Enumerable
  3. map وselect وreject
  4. reduce وeach_with_object
← العودة إلى Ruby Academy