我可以将两个大小相等的数组合并为一个包含合并值子数组的数组吗?

时间:2013-02-14 18:56:37

标签: ruby arrays

我有两个数组:

a = ["a1", "a2", "a3"]
b = ["b1", "b2", "b3"]

我想得到一个看起来像的数组:

combined = [["a1", "b1"], ["a2", "b2"], ["a3", "b3"]]

我在一个带有Hash[a.zip b]的Hash中找到了解决方案,返回:

{"a1"=>"b1", "a2"=>"b2", "a3"=>"b3"}

这可能必须通过lambda函数来解决,但我想知道是否有一些快速的Ruby魔法使这个更加快速的单行。

2 个答案:

答案 0 :(得分:3)

我不确定你为何涉及HashArray#zip是您需要的方法。

a = ["a1", "a2", "a3"]
b = ["b1", "b2", "b3"]

a.zip(b) # => [["a1", "b1"], ["a2", "b2"], ["a3", "b3"]]

答案 1 :(得分:3)

可替换地,

combined = [a, b].transpose