减去2个数组的值并获得一个带有减去值的新数组

时间:2011-04-29 15:48:05

标签: ruby

基本上,我想这样做:

[1,2,3,4,5].some_method([1,5,8,7,8])
=> [0,-3,-5,-3,-3]

在Ruby中执行此操作的最佳方法是什么?

3 个答案:

答案 0 :(得分:10)

[1,2,3,4,5].zip([1,5,8,7,8]).map { |a, b| a - b }

答案 1 :(得分:2)

p [1,2,3,4,5].zip([1,5,8,7,8]).map{|el| el.first-el.last}
#=> [0, -3, -5, -3, -3]

.zip结合了两个数组,如[[1,1],[2,5],[3,8],[4,7],[5,8]]。使用.map,该块还有很多工作要做 - 只需减去2个值。

答案 2 :(得分:0)

[1,2,3,4,5].zip([1,5,8,7,8]).map{|x|x[0]-x[-1]}

或通常的数组迭代

0.upto(a.size-1).map{|x| a[x]-b[x] }