1

イテレータの位置(イテレータが何回繰り返されたか)を取得する方法はありますか?

values = (1..100)
values.each do |value|
  if ... % 10 == 1 then puts iterator.count end
end

または、明示的にカウントする必要がありますか?

values = (1..100)
counter = 0
values.each do |value|
  if counter % 10 == 1 then puts counter end
  counter += 1
end

よりクリーンなアプローチはありますか?

Ruby 1.9.2

4

1 に答える 1

9

使用するeach_with_index

values.each_with_index do |value, idx|
  puts idx if idx % 10 == 1
  # do something else
end

または、よりクールな代替手段を使用できます

values.each.with_index do |value, idx|
  # work
end

#with_indexあまり知られておらず、map(および他の方法で)組み合わせて興味深い結果を得ることができるので、私はそれをより涼しいと呼びました。

于 2012-06-22T12:58:39.040 に答える