🕌

【備忘録】Railsで使う書き方③~filter_map~

2022/06/04に公開

次の記事の続きです。

https://zenn.dev/adverdest/articles/3f6d8872cf2b21

1回目でmapメソッドについて触れました。

sample.rb
numbers = [1,2,3,4,5]
new_numbers = numbers.map { |n| n * 10 }

filterメソッドも使います。(エイリアスメソッドはselectメソッド)

sample.rb
numbers = [1,2,3,4,5,6]
even_numbers = numbers.map { |n| n.even? }
even_numbers #=> [2,4,6]

この2つを両方とも実行したい場合、filter_mapメソッドを使用します。

https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/filter_map.html

sample.rb
numbers = [1,2,3,4,5,6]
new_numbers = numbers.filter_map { |i| i * 2 if i.even? } #=> [4, 8, 12]

業務で使用するよりはPaizaで使用することが多いですね。
もし使用するのであれば、次のような感じになるもかな?

sample.rb
[DBからとってきた値].filter_map{ |arr| 何かメソッド if arr.present?}

Discussion