ruby:如果某些项的键是相同的,如何从数组中获取第一个哈希项?

j-z*_*ang 1 ruby arrays hash

例如:

array = [
  {"a"=>1, "b"=>2, "c"=>3},
  {"a"=>1, "b"=>2, "c"=>4},
  {"a"=>2, "b"=>1, "c"=>5},
  {"a"=>2, "b"=>1, "c"=>6}
]
Run Code Online (Sandbox Code Playgroud)

如果密钥a和密钥b在散列中都相同,我想得到第一个项目.如:

array = [
  {"a"=>1, "b"=>2, "c"=>3},
  {"a"=>2, "b"=>1, "c"=>5}
]
Run Code Online (Sandbox Code Playgroud)

有没有办法区分哈希键并得到第一个?

San*_*osh 7

您可以将Array#uniq与块一起使用

array.uniq {|h| [h['a'],h['b']] }
# => [{"a"=>1, "b"=>2, "c"=>3}, {"a"=>2, "b"=>1, "c"=>5}] 
Run Code Online (Sandbox Code Playgroud)