Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Each مع الفهرس

جزء من قسم الأساسيات في رحلة Ruby على Coddy — الدرس 66 من 88.

أحيانًا تحتاج إلى معرفة ليس فقط العنصر الذي تعمل معه، ولكن أيضًا موقعه في المصفوفة. توفر لك طريقة each_with_index في Ruby كلاً من العنصر وفهرسه في دورة واحدة.

إليك كيف يعمل ذلك:

fruits = ["apple", "banana", "cherry"]

fruits.each_with_index do |fruit, index|
  puts "#{index}: #{fruit}"
end

هذا ينتج:

0: apple
1: banana
2: cherry

لاحظ أن الكتلة البرمجية (block) تأخذ الآن متغيرين بين الخطين الرأسيين (pipes): يأتي العنصر أولاً، يليه الفهرس (index). يبدأ الفهرس من 0، تماماً كما هو الحال عند الوصول إلى عناصر المصفوفة مباشرة.

هذا مفيد بشكل خاص عندما تحتاج إلى عرض قوائم مرقمة أو تتبع المواقع:

tasks = ["Buy groceries", "Clean room", "Call mom"]

tasks.each_with_index do |task, i|
  puts "Task #{i + 1}: #{task}"
end

من خلال إضافة 1 إلى الفهرس، نقوم بإنشاء قائمة مرقمة سهلة القراءة تبدأ من 1 بدلاً من 0. توفر الطريقة each_with_index الحاجة إلى تتبع متغير عداد يدويًا، مما يجعل الكود الخاص بك أكثر نظافة وأقل عرضة للأخطاء.

challenge icon

التحدي

سهل

اقرأ سطراً واحداً من المدخلات يحتوي على كلمات مفصولة بفاصلة (على سبيل المثال، apple,banana,cherry,date).

قم بتقسيم المدخلات إلى مصفوفة من السلاسل النصية، ثم استخدم each_with_index لطباعة كل عنصر كقائمة مرقمة تبدأ من 1 (وليس 0).

يجب أن يتبع كل سطر هذا التنسيق: Item 1: apple

على سبيل المثال، إذا كانت المدخلات apple,banana,cherry,date، يجب أن تكون المخرجات:

Item 1: apple
Item 2: banana
Item 3: cherry
Item 4: date

إذا كانت المدخلات red,green,blue، يجب أن تكون المخرجات:

Item 1: red
Item 2: green
Item 3: blue

إذا كانت المدخلات monday,tuesday,wednesday,thursday,friday، يجب أن تكون المخرجات:

Item 1: monday
Item 2: tuesday
Item 3: wednesday
Item 4: thursday
Item 5: friday

إذا كانت المدخلات solo، يجب أن تكون المخرجات:

Item 1: solo

ورقة مرجعية

تسمح لك الطريقة each_with_index بالتكرار عبر مصفوفة مع الوصول إلى كل من العنصر وفهرسه:

fruits = ["apple", "banana", "cherry"]

fruits.each_with_index do |fruit, index|
  puts "#{index}: #{fruit}"
end

المخرجات:

0: apple
1: banana
2: cherry

تأخذ الكتلة (block) متغيرين: العنصر أولاً، ثم الفهرس. يبدأ الفهرس من 0.

لإنشاء قوائم مرقمة سهلة القراءة تبدأ من 1، أضف 1 إلى الفهرس:

tasks = ["Buy groceries", "Clean room", "Call mom"]

tasks.each_with_index do |task, i|
  puts "Task #{i + 1}: #{task}"
end

جرّب بنفسك

# قراءة المدخلات المفصولة بفواصل
input = gets.chomp

# تقسيم المدخلات إلى مصفوفة
items = input.split(",")

# TODO: استخدم each_with_index لطباعة كل عنصر كقائمة مرقمة
# تذكر: يبدأ الفهرس من 0، ولكنك تحتاج إلى العرض بدءاً من 1
# التنسيق: "Item 1: apple"
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات