使用uniq!有两个参数的集合

Jac*_*ley 0 ruby

此时我正在使用uniq!获取集合中的唯一元素.是否有可能基于两个参数获得独特的元素?换句话说,我想使用uniq!获取基于t.info和t.name的"唯一"元素.

 collection.uniq! {|t| t.info }
Run Code Online (Sandbox Code Playgroud)

And*_*all 5

比较这些参数的数组:

T = Struct.new :info, :name
collection = [
  T.new('a', 'b'),
  T.new('a', 'b'),
  T.new('a', 'a'),
]

collection.uniq! { |t| [t.info, t.name] }
#=> [#<struct T info="a", name="b">, #<struct T info="a", name="a">]
Run Code Online (Sandbox Code Playgroud)

  • @JacksonHenley作为一个更好的证明点,请考虑`collection.map {| t | t.info && t.name}`返回,然后在它上面调用`uniq`给你. (2认同)