&、-、select、reject
今日使ったArrayクラスのメソッドについてメモしておきます。
何回も使ったことあるのにいつも記憶が曖昧で調べている気がしますw
&
複数の配列を比較して重複してる値を返してくれます。
[1,2,3,4,5,] & [2,3,4,7]
=> [2,3,4]
-
2つの配列を比較し、前者の配列のうち後者に含まれている値を除いてくれます。
[1,2,3,4,5,] - [2,3,4,7]
=> [1,5]
select
全ての要素にブロックを実行し、 trueとなった要素のみの新しい配列を返してくれます。
(select! だと新しい配列を返すのではなく、レシーバー自体を変更します。)
array = [1,2,3]
new_array = array.select { |i| i == 2 }
p array => [1,2,3]
p new_array => [2]
reject
全ての要素にブロックを実行し、 trueとなった要素を取り除いて新しい配列を返してくれます。
(reject! だと新しい配列を返すのではなく、レシーバー自体を変更します。)
array = [1,2,3]
new_array = array.reject { |i| i == 2 }
p array => [1,2,3]
p new_array => [1,3]
感想その他
いい加減ぱっと使いこなせるようにならなくては。。。