Ruby on rails 按此顺序组合2个哈希的最佳方法

Ruby on rails 按此顺序组合2个哈希的最佳方法,ruby-on-rails,ruby,arrays,hash,Ruby On Rails,Ruby,Arrays,Hash,我有两个散列列表1和列表2。密钥是用户ID。这里有一个例子 list1 = { '1' => [item1, item2], '2' => [item3] } list2 = { '1' => [item 4], '3' => [item 5] } 我需要将2对1的列表合并。。像这样的。。或任何更好的代表。基本上,需要将每个用户的list1和list2项组合成一个数组,其中第一个项给我list1项

我有两个散列列表1和列表2。密钥是用户ID。这里有一个例子

list1 = { '1' => [item1, item2],
          '2' => [item3]
        }

list2 = { '1' => [item 4],
          '3' => [item 5]
        }
我需要将2对1的列表合并。。像这样的。。或任何更好的代表。基本上,需要将每个用户的list1和list2项组合成一个数组,其中第一个项给我list1项,第二个项给我list2项

{ '1' => [[item 1, item 2], [item 4],
  '2' => [[item 3],[]],
  '3' => [[],[item 5]]
}

我可以用一种老式的方式做这件事,但我想知道是否有最好的方式来做这件事。。想知道是否可以最小化代码和处理。

这个输出如何

{ 
  '1' => [item 1, item 2, item 4],
  '2' => [item 3],
  '3' => [item 5]
}
你可以用它

ret = list1.merge(list2){ |key, old, new| old + new }

这个输出呢

{ 
  '1' => [item 1, item 2, item 4],
  '2' => [item 3],
  '3' => [item 5]
}
你可以用它

ret = list1.merge(list2){ |key, old, new| old + new }

+一行1人。我希望清单上的项目可以区分。。但是我使用了你的逻辑,像这样-list1.merge(list2){| key,old,new{old,new]}嘿,对不起。。我还没有解决这个问题。对于第一个结果,它是好的,即我得到[[item1,item2],[item3]],但是第二个结果,我只得到了[item3],而不是[[item3],]。有什么帮助吗?+1的一行。我希望清单上的项目可以区分。。但是我使用了你的逻辑,像这样-list1.merge(list2){| key,old,new{old,new]}嘿,对不起。。我还没有解决这个问题。对于第一个结果,它是好的,即我得到[[item1,item2],[item3]],但是第二个结果,我只得到了[item3],而不是[[item3],]。有什么帮助吗?