Às vezes precisamos contabilizar qual a frequência de objetos em um array usando Ruby.
Por exemplo, um array ["dog", "dog", "cat"] tem dois elementos "dog" e um "cat".
Para transformar isso em um hash com os totais, existem as seguintes alternativas, dependendo da versão do Ruby que você esteja utilizando:
Ruby 2.7 ou superior
ruby["dog", "dog", "cat"].tally
Ruby 2.2 até 2.6
rubywords = ["dog", "dog", "cat"]
Hash[words.group_by(&:itself).map { |word, words| [word, words.size] }]
Ruby 2.1 ou mais antigo
rubyHash[words.group_by { |w| w }.map { |word, words| [word, words.size] }]
Se você achou isso útil, deixe um comentário abaixo me contanto! 😉
Post atualizado em 30/12/2019, 07:00:00
💬 Comentários desativados temporariamente. Desculpe pelo inconveniente.