瑣碎使用for循環或each_with_index,只是想知道是否有使用Ruby語法做這件事的一個更好的方法。計算衍生物([I] - [I - 1])中的Ruby
我需要創建一個新的數組,它是源陣列的衍生物,例如:
for(int i = 1; i < oldArray.length; i++)
{
newArray[i] = oldArray[i] - oldArray[i-1]
}
瑣碎使用for循環或each_with_index,只是想知道是否有使用Ruby語法做這件事的一個更好的方法。計算衍生物([I] - [I - 1])中的Ruby
我需要創建一個新的數組,它是源陣列的衍生物,例如:
for(int i = 1; i < oldArray.length; i++)
{
newArray[i] = oldArray[i] - oldArray[i-1]
}
old_array.each_cons(2).map{|x, y| y - x}
Enumerable#each_cons
調用爲2的塊大小,但沒有一個塊返回一個枚舉器將遍歷old_array
中的每對連續元素。然後,我們只需使用map
對每對執行減法。
我只是跑它的[1,2,3,4],我得到[1,1,1]。 – Avdi 2009-07-31 20:24:40
last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]
嘿,不公平的挑選贏家之前我連型礦用起來:-P – Avdi 2009-07-31 20:20:29