打印ruby数组中的重复项和重复项数量

时间:2014-08-30 05:25:22

标签: ruby arrays

如果我给你一个数组:

['apples', 'bananas', 'apples','apples','apples', 'cat', 'dog', 'dog', 'troll']

并说:

打印出每个项目的名称以及它们出现的频率,以便输出为:

apples 4
bananas 1
cat 1
dog 2
troll 1

你会怎么做,看起来很简单,但对我而言,这让我很难过。

1 个答案:

答案 0 :(得分:3)

执行以下操作: -

array = [
         'apples', 'bananas', 'apples','apples',
         'apples', 'cat', 'dog', 'dog', 'troll'
        ]

array.group_by(&:to_s).each do |k,v|
  puts "#{k} #{v.size}"
end
# >> apples 4
# >> bananas 1
# >> cat 1
# >> dog 2
# >> troll 1