我有与本文中提到的相同的问题,但对于
Ruby而不是Perl.
Comparing-two-hashes-with-the-keys-and-values – Perl
Comparing-two-hashes-with-the-keys-and-values – Perl
我想比较两个哈希值,首先查看它们是否存在于第一个哈希中的密钥,是否存在于第二个哈希值中,如果是,则比较值并打印哈希键的值,否则如果值不相等,则打印密钥它具有不相等的价值.
我看了很多建议,但找不到比较两个不同哈希值的答案.
解决方法
要查找在clients和events数组中显示的所有人,我会收集值然后比较它们:
clients = {"address"=>"street.name.1","name"=>"john.doe","age"=>25},{"address"=>"street.name2","name"=>"jane.doe","age"=>14},{"address"=>"street.name.3","name"=>"tom.smith","age"=>35} events = {"type"=>"party","participant"=>"lisa.cohen","date"=>"05.05.13"},{"type"=>"corporate","participant"=>"john.doe","date"=>"26.05.13"},{"type"=>"meeting","participant"=>"james.edwards","date"=>"14.05.13"} #Get all client names client_names = clients.collect{ |c| c['name'] } p client_names #=> ["john.doe","jane.doe","tom.smith"] #Get all participant names event_participants = events.collect{ |e| e['participant'] } p event_participants #=> ["lisa.cohen","john.doe","james.edwards"] #Determine names that appear in both names_in_both = client_names & event_participants p names_in_both #=> ["john.doe"]