使用 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}

使用块大小为 2 但没有块调用的 Enumerable#each_cons 返回一个 Enumerator ,它将迭代 old_array 中的每对连续元素。然后我们只使用 map 对每一对执行减法。

10-07 23:16