使用 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
对每一对执行减法。