我有两个哈希,我想遍历它们。我怎样才能同时遍历它们。
xsi:schemaLocation
这就是我现在正在做的事情。是否有其他惯用或更好的方式
答案 0 :(得分:2)
我不认为你是怎么做的。如果你想要一种更灵活的方式,你可以使用其关键数组的笛卡尔积并迭代它......
all_key_combos.map { |k1,k2| [hash1[k1], hash2[k2]] }
=> [[["value1", "value11"], ["value3", "value32"]], [["value1", "value11"], ["value4", "value42"]], [["value2", "value21"], ["value3", "value32"]], [["value2", "value21"], ["value4", "value42"]]]
要从中获取值,一个简单的地图会构建一个数组,不知道你想要什么输出,让事情变得困难,但也许这会指向你正确的方向?
all_key_combos.map { |k1,k2| hash1[k1].product(hash2[k2]) }
=> [[["value1", "value3"], ["value1", "value32"], ["value11", "value3"], ["value11", "value32"]], [["value1", "value4"], ["value1", "value42"], ["value11", "value4"], ["value11", "value42"]], [["value2", "value3"], ["value2", "value32"], ["value21", "value3"], ["value21", "value32"]], [["value2", "value4"], ["value2", "value42"], ["value21", "value4"], ["value21", "value42"]]]
如果您想要获得他们的产品 -
{{1}}
可能性无穷无尽:)