How to use include? on an array of objects

F

Fernando Perez

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?
 
S

Shane Emmons

[Note: parts of this message were removed to make it a legal post.]

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

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?
 
J

James Coglan

[Note: parts of this message were removed to make it a legal post.]
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? }
 
M

Matthew Moss

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?

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? }
 
R

Ryan Davis

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).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,818
Latest member
Brigette36

Latest Threads

Top