From: dblack@... Date: 2007-09-04T05:40:15+09:00 Subject: Re: array of hashes: finding hash with min value for key Hi -- On Tue, 4 Sep 2007, Patrick Cotner wrote: > I'm trying to write a proggy to help me figure out how long it will take > to pay off a credit card based on a payment value. > The card can have multiple sections with different owed amounts and > aprs. > Since the credit card companies pay off lower interest sections prior to > higher, I need to be able to determine which section has lowest apr. For > example > > > sections << { :type => "Purchases", :owed => 840.64, :apr => 0.2474 } > sections << { :type => "Transfers", :owed => 3453.45, :apr => 0.1774 } > > > > I've set up a loop to iterate through each section and apply a finance > charge to the owed amounts. I have a variable with my payment amount. > After applying the finance charge, i need to see if section[:apr] is the > lowest of all sections, in order to apply the payment to that section > only. > How would this be done? You could say: lower = sections.find {|s| s[:apr] < section[:apr] } and if that's non-nil, you've found a lower one. David -- * Books: RAILS ROUTING (new! http://www.awprofessional.com/title/0321509242) RUBY FOR RAILS (http://www.manning.com/black) * Ruby/Rails training & consulting: Ruby Power and Light, LLC (http://www.rubypal.com)