Arrayの以下のメソッドについてまとめてみた.
- select (select!)
- reject (reject!)
- partition
select : 条件を満たす要素を列挙
条件を満たす要素を列挙するにはselectを使う.selectはブロックの評価結果がtrueとなる要素からなる配列を返す.非破壊的.
a = [1, 3, 4, 7, 9, 13] a.select{|e| e % 3 == 0} #=> [3, 9]
破壊的メソッドあり.ただしRuby 1.9.2以降が必要.
a.select!{|e| e % 3 == 0}
reject : 条件を満たす要素を削除
条件を満たす要素を取り除くにはrejectを使う.rejectはブロックの評価結果がtrueとなる要素を除いた配列を返す.非破壊的.
a = [1, 3, 4, 7, 9, 13] a.reject{|e| e % 3 == 0} #=> [1, 4, 7, 13]
破壊的メソッドあり.こちらはRuby 1.9.2以前からある.
a.reject!{|e| e % 3 == 0}
partition : 条件を満たす要素と満たさない要素に分ける
partitionはブロックの評価結果がtrueとなる要素とfalseとなる要素に分けた配列をまとめて返す.非破壊的.
a = [1, 3, 4, 7, 9, 13] a.partition{|e| e % 3 == 0} #=> [[3, 9], [1, 4, 7, 13]]
selectとrejectの両方を呼び出すよりも楽.
破壊的メソッドはない.