Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

in_groups_ofで配列を指定個数毎に切り分ける

in_groups_ofは配列を指定個数ごとに切り分けてくれるメソッドです

(1..10).to_a.in_groups_of(3)
#=> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, nil, nil]]

空白を任意の値で埋める事もできます

(1..10).to_a.in_groups_of(3,42)
#=> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 42, 42]]

と、まぁこれでは何が美味しいのが分かりませんが
例えば、

(1..10).to_a.in_groups_of(3,42) do |a, b, c|
  puts "hoge:#{a}"  
  puts "piyo:#{b}"  
  puts "fuga:#{c}"  
end  

なんてやると

hoge:1
piyo:2
fuga:3
hoge:4
piyo:5
fuga:6
hoge:7
piyo:8
fuga:9
hoge:10
piyo:42
fuga:42

と、素直にロジック書くと微妙に入り組みそうなものも楽に書く事ができます。