Menu
Coddy logo textTech

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

שימו לב שהבלוק מקבל כעת שני משתנים בין הקווים האנכיים: תחילה מופיע האיבר, ולאחריו האינדקס. האינדקס מתחיל ב־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

נסו בעצמכם

# קראו את הקלט המופרד בפסיקים
input = gets.chomp

# פצלו את הקלט למערך
items = input.split(",")

# TODO: השתמשו ב-each_with_index כדי להדפיס כל פריט ברשימה ממוספרת
# זכרו: האינדקס מתחיל ב-0, אבל יש להציג את המספור החל מ-1
# תבנית: "Item 1: apple"
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Ruby אונליין