基本上,我想这样做:
[1,2,3,4,5].some_method([1,5,8,7,8])
=> [0,-3,-5,-3,-3]
在Ruby中执行此操作的最佳方法是什么?
答案 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] }