在ruby中仅合并一个数组中两个数组的相应元素

Tas*_*sos 1 ruby arrays merge

你好,我在ruby中有以下两个数组

A=["a","b","c"]
B=["d","e","f"]
Run Code Online (Sandbox Code Playgroud)

而且我想制作这个

C = ["ad", "be", "cf"]
Run Code Online (Sandbox Code Playgroud)

无论数组长度如何.但是这两个数组的长度始终相同.

有一个巧妙的方法来做到这一点?我的意思是代替用for循环迭代数组.

Aru*_*hit 5

方法很简单,Array#zip并且Array#map:

A = ["a","b","c"]
B = ["d","e","f"]
A.zip(B).map { |a| a.join }
# => ["ad", "be", "cf"]
# or
A.zip(B).map(&:join)
# => ["ad", "be", "cf"]
Run Code Online (Sandbox Code Playgroud)

还有一种方式(但看起来不太好),:-)

A.map.with_index { |e,i| e + B[i] }
# => ["ad", "be", "cf"]
Run Code Online (Sandbox Code Playgroud)

  • 或者`a.map(&:join)` (2认同)