Today’s Ruby Tuesday is on Enumerable#select.
Enumerable#select iterates over a list, passing each element to the provided block, and returns an array of those items for which the block returns a truthy value.
[1, 2, 3, 4, 5].select &:even?
# => [2, 4]
[1, 2, 3, 4, 5].select {|item| item.even?}
# => [2, 4]
["a", "foo", "snafu", "rb", "qwerty"].select {|item| item.length > 3}
# => ["snafu", "qwerty"]
If no items are found to meet the criteria, Enumerable#select returns an empty array.
[1, 2, 3, 4, 5].select {|item| item > 25 }
# => []
Enumerable#reject
Enumerable#select has a counterpart of Enumerable#reject which returns an array of items for which the block returns a falsey value.
[1, 2, 3, 4, 5].reject &:even?
# => [1, 3, 5]
[1, 2, 3, 4, 5].reject {|item| item.even?}
# => [1, 3, 5]
["a", "foo", "snafu", "rb", "qwerty"].reject {|item| item.length > 3}
# => ["a", "foo", "rb"]
If all items are found to meet the criteria, Enumerable#reject returns an empty array.
[1, 2, 3, 4, 5].reject {|item| item > 0 }
# => []
–Proctor
Pingback: Ruby Tuesday – Enumerable#drop_whileProctor It | Proctor It