fipa
November 21, 2008, 6:48pm
1
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?
fipa
November 21, 2008, 7:02pm
2
fipa
November 21, 2008, 7:02pm
3
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? }
fipa
November 21, 2008, 7:09pm
4
On Nov 21, 2008, at 11:44 AM, Fernando P. wrote:
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? }
fipa
November 21, 2008, 8:57pm
5
On Nov 21, 2008, at 09:44 , Fernando P. wrote:
a variable if a match is found?
c’mon guys… teach a man to fish.
Fernando, check out ri. ri is your friend™.
% 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).