带索引的`step`

时间:2016-02-17 15:01:33

标签: ruby iteration

如果我有这段代码:

46.step(127, 1) do |i|
end

我可以在第10次迭代时获得i = 55index = 10而没有任何外部计数器吗?

2 个答案:

答案 0 :(得分:5)

我不确定这里的性能含义,但你可以这样做:

46.step(127, 1).each_with_index do |i, index|
end

仅在第10次迭代中index为9。

答案 1 :(得分:0)

以下是一些可以解决问题的代码。

return_array = []
46.step(127, 1) do |i|
    group_array = []
    group_array << i
    return_array << group_array 
    group_array << return_array.find_index(group_array) + 1
end
return_array

这将返回[[46,1],[47,2],[48,3],[49,4],[50,5],[51,6],[52,7],[ 53,8],[54,9],[55,10],[56,11],[57,12],......,[127,82]]