ume

ruby配列から特定の要素を取り出すときはrejectではなく-メソッドを使用する。

前書き

私はプログラミング初学者なのですが現役エンジニアの方にコードレビューしていただいたことを記事に残します。

結論

⇨同じ処理ならより可読性が高いメソッドを使おう。配列から要素を除外するメソッドはrejectメソッドより-(マイナス)メソッドを使用しよう.

そもそもrejectの構文
配列オブジェクト.reject{|引数|処理}

例偶数(odd)と奇数(even)を表示するプログラム

numbers = [1,2,3,4,5]
odd = [2,4]
even = numbers.reject{|number|odd.include?(number)}
puts even
⇨[1,3,5]出力

⇨numbersという配列の要素を左から1つずつ取り出しnumberという引数に代入されoddに含まれる要素(2,4)と引数が同じだったら新しい配列(even)の中に代入され違う場合何もしないという処理

-(マイナス)メソッドの構文
配列A - 配列B

配列Aから配列Bを取り除く.
例偶数(odd)と奇数(even)を表示するプログラム

numbers = [1,2,3,4,5]
odd = [2,4]
even = numbers - odd 
puts even
⇨[1,3,5]出力

rejectメソッドよりコードが短く直感的に何をしてるのかわかりやすくなりました。

まとめ

  • 同じ処理をしているなら可読性が高いコードが短い方を選ぶ