如何检查哈希数组中的唯一性

时间:2012-10-03 18:31:10

标签: ruby-on-rails ruby

我有一个哈希数组,其中每个哈希包含一些键。我想查看是否有任何数量的哈希具有相同的user_id。

示例如下:

[ {:id => 1, :user_id => 2, :location => nil, :facility_id => nil}
  {:id => 3, :user_id => 2, :location => 'China', :facility_id => 20} ]

在这种情况下,我需要这个返回true,其中两个哈希值有一个共同的user_id。我怎么做'红宝石'?

2 个答案:

答案 0 :(得分:4)

arr = [ {:id => 1, :user_id => 2, :location => nil, :facility_id => nil},
  {:id => 3, :user_id => 2, :location => 'China', :facility_id => 20} ]
p arr != arr.uniq{|u| u[:user_id]} #=> true

答案 1 :(得分:3)

试试这个:

a.map{|t| t[:user_id]}.uniq.size == a.size