我有两个数组:
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魔法使这个更加快速的单行。
答案 0 :(得分:3)
我不确定你为何涉及Hash
。 Array#zip
是您需要的方法。
a = ["a1", "a2", "a3"]
b = ["b1", "b2", "b3"]
a.zip(b) # => [["a1", "b1"], ["a2", "b2"], ["a3", "b3"]]
答案 1 :(得分:3)
可替换地,
combined = [a, b].transpose