Ruby: Contar valores em um array

Palavras-chave: Ruby, array

Para contar a frequência com que os valores de um array se repetem, podemos utilizar:

array = %w(morango abacaxi banana morango pera morango abacate banana)
p array.inject(Hash.new(0)) {|memo,value| memo[value] += 1; memo}

Será retornada uma hash com os valores como chave e a frequência de repetição como valores.

O segredo é usar uma hash com valor default e retorná-la no final do bloco do inject. Rodando o programa vamos ter:

{"banana"=>2, "abacate"=>1, "pera"=>1, "abacaxi"=>1, "morango"=>3}
This entry was posted in Ruby. Bookmark the permalink.