From: Robert Klemme Date: 2010-02-25T05:50:25+09:00 Subject: Re: Create a counter in a hash to return first 10 results only On 24.02.2010 20:52, John Dale wrote: > John Dale wrote: >> New to ruby.. >> >> I created a hash array and everything works fine except I can't figure >> out how to include a counter to return the first 10 results only. >> >> Thanks John >> >> Here is the code >> >> h = Hash.new >> good_words.each { |w| >> if h.has_key?(w) >> h[w] = h[w] + 1 >> else >> h[w] = 1 >> end >> } >> >> # sort the hash by value, and then print it in this sorted order >> >> h.sort{|a,b| b[1]<=>a[1]}.each { |elem| >> >> puts "\"#{elem[0]}\" has #{elem[1]} occurrences" >> >> } > > > referred to an earlier post and figured this out. Like? h = Hash.new 0 ... h[w] += 1 ... puts h.sort_by {|w,c| -c}[0,10] Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/