使用for循环或each_with_index都很简单,只是想知道是否有更好的方法使用Ruby语法完成它。
我需要创建一个新的数组,这个数组是源数组的导数,例如:
for(int i = 1; i < oldArray.length; i++)
{
newArray[i] = oldArray[i] - oldArray[i-1]
}
使用for循环或each_with_index都很简单,只是想知道是否有更好的方法使用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
将返回一个枚举器,该枚举器将迭代old_array
中每一对连续元素。然后我们只需使用map
对每对执行减法即可。last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]