Menu
Coddy logo textTech

Select ו־Reject

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Ruby של Coddy. שיעור 21 מתוך 56.

המתודה select מחזירה מערך חדש שמכיל רק את האיברים שעבורם הבלוק מחזיר ערך truthy. כך Ruby כותבת "filter".

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

reject הוא ההפך: הוא משאיר את כל מה שעבורו הבלוק מחזיר false:

odds = numbers.reject { |n| n.even? }
puts odds.inspect    # [1, 3, 5]

שניהם מחזירים מערך חדש; המקורי אינו משתנה.

הבלוק הוא פשוט פרדיקט; כל דבר שמחזיר true או false מתאים:

words = ["hi", "hello", "hey", "yo"]
long  = words.select { |w| w.length >= 3 }
puts long.inspect    # ["hello", "hey"]
challenge icon

אתגר

מתחילים

קרא רשימה של מספרים שלמים המופרדים בפסיקים. הדפס שתי שורות:

  1. המספרים הגדולים מ־10 (השתמש ב־select), מחוברים באמצעות ,
  2. המספרים שאינם מתחלקים ב־3 (השתמש ב־reject), מחוברים באמצעות ,

עבור הקלט 3,7,12,15,20, הפלט הוא:

12, 15, 20
7, 20

נסו בעצמכם

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: שורה 1, מספרים > 10, מחוברים באמצעות ", "
# TODO: שורה 2, מספרים שאינם מתחלקים ב-3, מחוברים באמצעות ", "
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

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