使用for循环或each_with_index微不足道,只是想知道是否有更好的方法使用Ruby语法。
我需要创建一个新数组,它是源数组的衍生物,例如:
for(int i = 1; i < oldArray.length; i++)
{
newArray[i] = oldArray[i] - oldArray[i-1]
}
答案 0 :(得分:8)
old_array.each_cons(2).map{|x, y| y - x}
Enumerable#each_cons
调用,块大小为2,但没有块返回一个枚举器,它将迭代old_array
中的每对连续元素。然后我们只使用map
对每对执行减法。
答案 1 :(得分:1)
last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]