首页 > 解决方案 > 如何在Ruby中查找数组的唯一出现次数

问题描述

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

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

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

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

标签: ruby

解决方案


一个班轮选项:

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

推荐阅读