4

使用 for 循环或 each_with_index 很简单,只是想知道是否有更好的方法来使用 Ruby 语法。

我需要创建一个新数组,它是源数组的导数,例如:

for(int i = 1; i < oldArray.length; i++)
{
    newArray[i] = oldArray[i] - oldArray[i-1]
}
4

2 回答 2

8
old_array.each_cons(2).map{|x, y| y - x}

Enumerable#each_cons使用块大小为 2 但没有块的调用返回一个枚举器,它将遍历old_array. 然后我们只使用map对每一对执行减法。

于 2009-07-31T20:17:31.407 回答
1
last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]
于 2009-07-31T20:13:39.323 回答