如何在 Ruby 中查找数组唯一出现的次数

Ben*_*ams 0 ruby

我有一个数组,包含n一定数量的元素。每个元素包含两个单词。

这使得数组看起来像这样:['England John', 'England Ben', 'USA Paul', 'England John']

我想找到每个国家/地区的唯一名称的数量。例如,England将有 2 个唯一的名称,因为John存在两次。

到目前为止,我已将数组分成两个数组,一个包含国家,例如['England', 'Usa', ...],另一个包含名称['John', 'Paul', ...],但是我不确定从这里去哪里

iGi*_*ian 5

一种内衬选项:

ary.uniq.group_by { |e| e.split.first }.transform_values(&:count)
#=> {"England"=>2, "USA"=>1}
Run Code Online (Sandbox Code Playgroud)