Enumerable#detect
Arrayなどで配列を扱ってると、配列の中の一致する値を取り出したい場合があります。
下のコードを書いてコミットしたら、指摘されていいものを教えてもらったので、メモです。
array.each do |data| if data.to_i == 1 return data end end nil
のように書いてチェックしてなかったらnilにするような処理を一括でやってくれるのがdetectです。
便利です。
array.detect do |data| data.to_i == 1 end
かなりシンプルになりました。
detectのいいところはブロックで受け取った評価に一致するデータを返却してくれて、一致するデータがなかった場合は、nilを返してくれます。
便利さに浸ってました。