使用ruby哈希作为从较大哈希中选择的约束

使用ruby哈希作为从较大哈希中选择的约束,ruby,hash,Ruby,Hash,我有一个散列的条件: {"age" => "52", "First_Name" => "Bat"} people.select do |person| conditions.all? { |k,v| person[k] == v } end 我有一个person散列数组: [{"id"=>"1", "First_Name"=>"John", "Last_Name"=>"Doe", "Age"=>"27"}, {"id"=>"2", "First_

我有一个散列的
条件

{"age" => "52", "First_Name" => "Bat"}
people.select do |person|
  conditions.all? { |k,v| person[k] == v }
end
我有一个
person
散列数组:

[{"id"=>"1", "First_Name"=>"John", "Last_Name"=>"Doe", "Age"=>"27"}, {"id"=>"2", "First_Name"=>"Jane", "Last_Name"=>"Doe", "Age"=>"26"}, {"id"=>"3", "First_Name"=>"Bat", "Last_Name"=>"Man", "Age"=>"52"}, {"id"=>"4", "First_Name"=>"Bat", "Last_Name"=>"Woman", "Age"=>"51"}]
如何获取所有符合
条件的
person
哈希值?(在这种情况下,它应该只返回“蝙蝠侠”散列。)

如果要获取所有符合
条件的人:

{"age" => "52", "First_Name" => "Bat"}
people.select do |person|
  conditions.all? { |k,v| person[k] == v }
end
或者,如果您确定只有一个(感谢@tokland):


“符合条件的人”->detectI早些时候试过接受——它不让我接受,说我得等一天。我不会让这样的事情挂起:)对于后代来说,如果你能编辑你的问题,让它更清楚地表明你想要一个符合条件的所有对象的列表,而不仅仅是第一个匹配的对象(在这种情况下,正如@tokland所建议的,
detect
将是最好的选择)。@s.m.完成。谢谢你的建议。谢谢你编辑你的问题:)