MonkeeSage
9/12/2006 4:32:00 AM
kovax wrote:
> Hello,
>
> I have an array filled with employee objects that are defined like
> this:
>
> Employee = Struct.new(:name, :age)
>
> I would like to use the find_all method on an array of employee objects
> to find all employee objects with an age > 18. I tried the following
> code but I was unsuccessful:
>
> employees = []
> employees.add Employee.new("joe" , 4)
> employees.add Employee.new("sam" , 20)
>
> employees.select { Employee.age > 18 }
>
> Any help or pushes in the right direction would be really appreciated.
Hi there,
In the block to select you don't want to use the Employee object, you
want to use the instances you created of it, which will be passed in
through the block argument. Also, I don't know if add is a custom
method you made, or mabye an alias for push or <<, or if you are asking
about that too, so in this code I use push:
Employee = Struct.new(:name, :age)
employees = []
employees.push Employee.new("joe" , 4)
employees.push Employee.new("sam" , 20)
adults = employees.select { |e| e.age > 18 }
adults.each { |e| puts "#{e.name}, #{e.age}" }
# => sam, 20
Regards,
Jordan