2

如果我有两个数组:

a = [1,2,3]
b = [2,3,4]

是否有一个预先构建的函数来添加两个数组来给出

c = a + b = [3,5,7]

即添加数组中每个元素的值?

4

3 回答 3

10

不,没有一种方法可以解决这个问题。但是你可以结合起来zipmap这样:

c = a.zip(b).map {|a,b| a+b}
于 2012-04-21T22:43:35.787 回答
6

我认为与您所问的最接近的是:

[1,2,3].zip([2,3,4]).map{|x| x.reduce(:+)}

它甚至适用于更多数组

[1,2,3].zip([2,3,4], [3,4,5], [4,5,6]).map{|x| x.reduce(:+)}
于 2012-04-21T22:46:36.080 回答
6

这看起来很像向量加法。这是实现这一目标的一种方法:

require 'matrix'

a = Vector[1,2,3]
b = Vector[2,3,4]

puts a+b
#=> Vector[3,5,7]

只需to_a在 Vector 上使用即可获取数组。

于 2012-04-21T23:17:58.250 回答