QA@IT

Rubyのeach文でループの数をしていするのはどうすればよいですか?

11574 PV

rubyのeach文でを3回だけ回したいのですがどうすればよいですか?

@posts.each do |post|
処理

end

回答

「3回」という回数が大事なら、

3.times do |i|
  @posts[i].do_something
end

と書いたり、

@posts.first(3).each do |post|
  posts.do_something
end

と書いたりもできます。
(@postsは事前に処理したい関心ごとでソートされてないといけませんが)

編集 履歴 (0)

each_with_indexやwith_indexで途中でbreakしたり
[]で先に取り出したりするんじゃないかと思います。

@posts.each_with_index do |post,i|
  # do something
  break if i== 2
end 

@posts.each.with_index(0) do |post,i|
  # do something
  break if i== 2
end 

@posts[0,3].each do |post|
  # do something
end

違いは調べてみてください。

編集 履歴 (1)
ウォッチ

この質問への回答やコメントをメールでお知らせします。