Computer Science Canada

Get items of an array that match a condition

Author:  DtY [ Mon Oct 12, 2009 3:24 pm ]
Post subject:  Get items of an array that match a condition

I feel stupid asking this.. I should know the answer, but I just can't remember what method I want. I looked at [].methods, but couldn't find anything that looked right.
What I want is the method that will give me this:
Ruby:
> [1,2,3,4,5,6,7,8,9,10].someMethod{|n| n%2 == 0}
[2,4,6,8,10]


Thanks

Author:  DtY [ Mon Oct 12, 2009 3:35 pm ]
Post subject:  RE:Get items of an array that match a condition

Found it, it's Array#select

Author:  Vermette [ Mon Oct 12, 2009 3:36 pm ]
Post subject:  RE:Get items of an array that match a condition

select:
http://www.ruby-doc.org/core/classes/Array.html

edit: beaten

Author:  wtd [ Wed Oct 14, 2009 10:23 pm ]
Post subject:  RE:Get items of an array that match a condition

Ruby:
class FixNum
    def even?
        self % 2 == 0
    end
end

module Enumerable
    def all_evens
        select { |x| x.even? }
    end
end

Author:  gianni [ Thu Oct 15, 2009 3:33 pm ]
Post subject:  Re: RE:Get items of an array that match a condition

wtd @ Wed Oct 14, 2009 10:23 pm wrote:
Ruby:
class FixNum
    def even?
        self % 2 == 0
    end
end

module Enumerable
    def all_evens
        select { |x| x.even? }
    end
end


Building on wtd's example, if you're using Rails or Ruby 1.9:

Ruby:
class FixNum
    def even?
        self % 2 == 0
    end
end

array.select(&:even?)


: