如果我有两个阵列:
a = [1,2,3]
b = [2,3,4]
是否有预先构建的函数来添加两个数组以提供
c = a + b = [3,5,7]
即。添加数组中每个元素的值?
答案 0 :(得分:10)
不,没有一种方法可以解决这个问题。但您可以将zip
和map
组合在一起:
c = a.zip(b).map {|a,b| a+b}
答案 1 :(得分: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(:+)}
答案 2 :(得分:6)
这看起来很像矢量添加。这是实现这一目标的一种方法:
require 'matrix'
a = Vector[1,2,3]
b = Vector[2,3,4]
puts a+b
#=> Vector[3,5,7]
只需在Vector上使用to_a
即可获得数组。