Ruby on rails 按此顺序组合2个哈希的最佳方法
我有两个散列列表1和列表2。密钥是用户ID。这里有一个例子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项
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],]。有什么帮助吗?