Ruby Tips!

RubyのTipsを紹介します

配列を条件に基づいて分割する

Array#partitionを使えば、配列をブロックを満たす要素と、そうでない要素に分割した新しい配列を作ることができる。

p [1, 2, 3, 4, 5, 6].partition{|i| i % 2 == 0 } #=> [[2, 4, 6], [1, 3, 5]]

より高度な分割はArray#group_byで行える。このメソッドは、ブロックを評価した結果に基づいて、配列を複数の配列に分割しハッシュとして返す。

p [1, 2, 3, 4, 5, 6].group_by{|i| i % 3 } #=> {1=>[1, 4], 2=>[2, 5], 0=>[3, 6]}