给定两个哈希数组,我们如何从具有匹配键的两个数组中匹配哈希:值

问题描述 投票:0回答:1

在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返回匹配的哈希值。

关于如何执行此操作的任何想法?

ruby hash
1个回答
1
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.