我有一个像下面两个散列,如何比较和打印Ruby中匹配的哈希值?
h1 = {"a" => 1, "b" => 2, "c" => 3}
h2 = {"a" => 2, "b" => 2, "d" => 3}
我想遍历HASH1和HASH2并找到匹配键和值并将其打印在控制台。 举例这里应该返回输出“B” => 2倍。其不与下面的代码工作,
h1.each do |key1, value1|
h2.each do |key2, value2|
if ((h2.include? key1) && (h2.include? value1))
puts "matching h2 key #{h2[key2]}and h1 key #{h1[key1]}"
else
puts " don not match h2 key #{h2[key2]}and h1 key #{h1[key1]}"
end
end
end
我是从基本的C++和Java的背景和它很容易做到使用循环和迭代,但使用Ruby,这是非常困难的。
你的问题还不清楚。 “它不工作”是什么意思? *如何*它不起作用?你有错误吗?如果是的话,你得到的*精确*错误信息是什么,回溯是什么,错误发生在哪一行?你有什么警告吗?如果是,那么*精确*警告信息是什么,警告发生在哪一行?观察到的行为是否与预期行为不同?如果是,那么*观察到的行为是什么,预期的行为是什么?请详细说明您想要做什么,包括任何和所有例外情况,特殊情况...... –
......角落案例和边缘案例。另外,请提供样本输入和输出作为测试用例,其中包括例外,角落案例,特殊情况和边缘案例。在标题中,您问的是“匹配值”。我期望匹配值的结果是'[{“b”=> 2},{“c”=> 3},{“d”=> 3}]'。在问题主体中,您问的是“匹配键”。我期望匹配键的结果是'[{“a”=> 1},{“a”=> 2},{“b”=> 2}]''。但是,这些都不符合你想要的结果'{“b”=> 2}'。 –