在Ruby中,并给出了两个哈希数组。我们如何匹配这两个数组中的哪些散列都匹配相同的特定键:这些散列的值?
示例
A = [{ "Jane Doe" => 10, "Jim Doe" => 6 }, { "Jane Doe" => 11, "Jim Doe" => 12 }, ...]
B = [{ "Jane Doe" => 10, "Jim Doe" => 5 }, { "Jane Doe" => 12, "Jim Doe" => 1 }, ...]
比较数组A和B。我们将遍历A和B中的所有散列。我们正在寻找值为10的键“ Jane Doe”。我们看到“ Jane Doe” =>两个数组中的10相同对于索引0。我们返回两个数组的整个哈希,因为它们对于键“ Jim Doe”具有不同的信息。
脚本的结果可能是两个匹配哈希值的返回。一个来自A,另一个来自B。或者,如果我们首先在A上进行迭代,并且内部迭代在B上,尝试与A匹配,那么我们可以从B返回匹配的哈希值。
关于如何执行此操作的任何想法?
matched_results = []
a.each do |h1|
b.each do |h2|
if (h1.keys & h2.keys).all? {|k| h1[k] == h2[k]}
matched_results << h1
end
end
end