22nd
Tue
selectとmapを同時に使う
This article was migrated from http://rai
yamazのRails日記 を読んでいて、injectを使う局面を思いついたのでメモ。
目的は、Arrayから特定の条件を満たす要素に変換を掛けた結果を取得する事です。
[1,2,3].inject([]){|r,i| i!=2 ? r<<i.to_s : r} #=> ["1","3"]ちょうどselectとmapを同時にかけたような感じになります。
逆に、mapした結果をselectしたい場合は
["a","ab","aab"].inject([]){|r,i| (s=i=~/b/) ? r<<s : r} #=> [1,2]こんな風にすればOKですね。
※注 このエントリの内容は、隙あらばinject派(Rubyist SNS)のお遊びなので、通常は可読性を考えてselectとmapを使ったほうが無難です(8/22 16:56 追記)
This article was migrated from http://rai
posted by
genki
on Tue 22 Aug 2006
at 00:11