How to use include? on an array of objects

I have the following array:

[ product1, product2, product3 ]

All products are of type Product. The Product class defines isntance
attributes such as: title, description, price.

Can I use include? to check if the array has a product which price is
zero? if not what would I need to do? Iterate over each product and set
a variable if a match is found?

···

--
Posted via http://www.ruby-forum.com/.

Use the 'select' method of array
http://ruby-doc.org/core/classes/Array.html#M002214

···

On Fri, Nov 21, 2008 at 12:44 PM, Fernando Perez <pedrolito@lavache.com>wrote:

I have the following array:

[ product1, product2, product3 ]

All products are of type Product. The Product class defines isntance
attributes such as: title, description, price.

Can I use include? to check if the array has a product which price is
zero? if not what would I need to do? Iterate over each product and set
a variable if a match is found?
--
Posted via http://www.ruby-forum.com/\.

--
Shane Emmons

I have the following array:

[ product1, product2, product3 ]

All products are of type Product. The Product class defines isntance
attributes such as: title, description, price.

Can I use include? to check if the array has a product which price is
zero? if not what would I need to do?

You probably want any? :

product_array.any? { |p| p.price.zero? }

Given arr = [ product1, product2, product3 ], and you have a 'price' method on your products:

If you want to find the first item of price zero:

    arr.find { |prod| prod.price.zero? }

If you want to find all items of price zero:

    arr.select { |prod| prod.price.zero? }

If you just want to know that at least one item has zero price:

    arr.any? { |prod| prod.price.zero? }

···

On Nov 21, 2008, at 11:44 AM, Fernando Perez wrote:

I have the following array:

[ product1, product2, product3 ]

All products are of type Product. The Product class defines isntance
attributes such as: title, description, price.

Can I use include? to check if the array has a product which price is
zero? if not what would I need to do? Iterate over each product and set
a variable if a match is found?

c'mon guys... teach a man to fish.

Fernando, check out ri. ri is your friend(tm).

% ri Array
% ri Enumerable

(Array includes Enumerable). There is a LOT of good stuff in Enumerable. You should poke around and learn as much of it as you can:

% ri Enumerable.find
% ri Enumerable.find_all

etc.

Other places to look are http://ruby-doc.org/ and the PragProg pickaxe book (Programming Ruby, 2nd ed).

···

On Nov 21, 2008, at 09:44 , Fernando Perez wrote:

I have the following array:

[ product1, product2, product3 ]

All products are of type Product. The Product class defines isntance
attributes such as: title, description, price.

Can I use include? to check if the array has a product which price is
zero? if not what would I need to do? Iterate over each product and set
a variable if a match is found?