Ruby 合并散列数组
我有两个数组,每个数组都包含属性哈希Ruby 合并散列数组,ruby,arrays,hash,Ruby,Arrays,Hash,我有两个数组,每个数组都包含属性哈希 Array1 => [[{attribute_1 = A}, {attribute_2 = B}], [{attribute_1 = A}, {attribute_4 = B}]] Array2 => [{attribute_3 = C}, {attribute_2 = D}], [{attribute_3 = C, attribute_4 = D}]] 数组中的每个数组都保存对象的属性哈希。在上面的示例中,我正在处理两个对象。对于这两个对象,
Array1 => [[{attribute_1 = A}, {attribute_2 = B}], [{attribute_1 = A}, {attribute_4 = B}]]
Array2 => [{attribute_3 = C}, {attribute_2 = D}], [{attribute_3 = C, attribute_4 = D}]]
数组中的每个数组都保存对象的属性哈希。在上面的示例中,我正在处理两个对象。对于这两个对象,每个数组中都有两个属性
如何合并这两个数组?我试图获得一个由“object”数组组成的单个数组从一开始就无法获得单个数组,因为我必须进行两个不同的API调用才能获得这些属性
DesiredArray => [[{attribute_1 = A, attribute_2 = B, attribute_3 = C, attribute_4 = D}],
[{attribute_1 = A, attribute_2 = B, attribute_3 = C, attribute_4 = D}]]
我尝试了两种方法,包括迭代方法和合并方法,但我无法获得所需的数组。我认为我的答案不再有效,因为问题已在稍后编辑 在这里,首先我要修正你的问题中的数组和散列符号
Array1 = [{'attribute_1' => 'A', 'attribute_2' => 'B'}, {'attribute_1' => 'A', 'attribute_2' => 'B'}]
#=> [{"attribute_1"=>"A", "attribute_2"=>"B"}, {"attribute_1"=>"A", "attribute_2"=>"B"}]
Array2 = [{'attribute_3' => 'C', 'attribute_2' => 'D'}, {'attribute_3' => 'C', 'attribute_4' => 'D'}]
#=> [{"attribute_2"=>"D", "attribute_3"=>"C"}, {"attribute_3"=>"C", "attribute_4"=>"D"}]
您只需将这两个数组连接起来即可获得所需的数组,如下所示:
DesiredArray = Array1+Array2
# => [{"attribute_1"=>"A", "attribute_2"=>"B"}, {"attribute_1"=>"A", "attribute_2"=>"B", {"attribute_2"=>"D", "attribute_3"=>"C"}, {"attribute_3"=>"C", "attribute_4"=>"D"}]
我认为我的答案不再有效,因为这个问题后来被编辑过 在这里,首先我要修正你的问题中的数组和散列符号
Array1 = [{'attribute_1' => 'A', 'attribute_2' => 'B'}, {'attribute_1' => 'A', 'attribute_2' => 'B'}]
#=> [{"attribute_1"=>"A", "attribute_2"=>"B"}, {"attribute_1"=>"A", "attribute_2"=>"B"}]
Array2 = [{'attribute_3' => 'C', 'attribute_2' => 'D'}, {'attribute_3' => 'C', 'attribute_4' => 'D'}]
#=> [{"attribute_2"=>"D", "attribute_3"=>"C"}, {"attribute_3"=>"C", "attribute_4"=>"D"}]
您只需将这两个数组连接起来即可获得所需的数组,如下所示:
DesiredArray = Array1+Array2
# => [{"attribute_1"=>"A", "attribute_2"=>"B"}, {"attribute_1"=>"A", "attribute_2"=>"B", {"attribute_2"=>"D", "attribute_3"=>"C"}, {"attribute_3"=>"C", "attribute_4"=>"D"}]
您似乎有并行的哈希数组。我们可以使用zip将并行数组转换为散列数组的单个数组。然后,我们可以使用inject and merge将每个哈希数组映射到单个哈希:
您似乎有并行的哈希数组。我们可以使用zip将并行数组转换为散列数组的单个数组。然后,我们可以使用inject and merge将每个哈希数组映射到单个哈希:
@本,不客气!我编辑了我的答案以反映你的更正。@Ben,不客气!我编辑了我的答案以反映你的更正。