我该如何在Ruby数组上进行迭代,并始终获取当前值和下一个值,例如:
[1,2,3,4,5,6].pairwise do |a,b|
# a=1, b=2 in first iteration
# a=2, b=3 in second iteration
# a=3, b=4 in third iteration
# ...
# a=5, b=6 in last iteration
end
我的用例:我想测试一个数组是否已排序,通过使用以下这样的迭代器,我可以始终比较两个值。
我不是在寻找像这个问题中的each_slice
: 将Ruby数组转换为连续对数组
ary.each_cons(2).all? { |a, b| a <= b }
如果值已排序,则返回true
。(不幸的是,由于each_cons
产生值的方式,你不能在这里使用all?(&:<=)
) - Stefan