2013-11-26 63 views
2

比方說,我有一個數組如何在數組比較值

array = [1,2,3,4,5] 

如何比較第一與第二值,第二與第三等

我唯一能拿出這就是(這是相當醜陋的)

compared = array.each_with_index.map do |a,i| 
    array[i+1].nil? ? nil : array[i] - array[i + 1] 
end 

compared.compact # to remove the last nil value 

我要的是

[-1, -1, -1, -1] 

有沒有一個很好的「紅寶石方式」實現這一目標?而不使用所有醜陋的東西array[i]array[i+1]的東西。

回答

1

您還可以使用可枚舉#注入:

a = [1,2,3,4,5] 
b = [] 
a.inject{|i,j| b<< i-j; j} 
p b 

結果:

[-1, -1, -1, -1]