This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/85

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://rails.office.drecom.jp/takiuchi/archive/85

posted by genki genki on Tue 22 Aug 2006 at 00:11 with 0 comments
Contents rssrss
光ファイバーを二次元振動させて走査するAR用ディスプレイ
因果の取り違え
Swift2's defer for CoffeeScript
mongodb-3.0からcreateIndexのdropDupsが無くなったらしい
mongodb-3.0以降のWiredTigerの設定を動的に変更する方法
一般楕円の高速生成アルゴリズムへの道標
farro mantecatoのレシピ
Droonga関連の記事のまとめ
RuntimeErrorの特定のメッセージに限定してrescueする方法
jQueryでscriptタグを実行せずにappendする
Tags
coffeescriptdefergroongajsmemonodenodejs
Comments rssrss
https://casino-pinco.clients.site/ https://casino-pinco.clients.site/: Pinco Casino регистрация открыла доступ к крутому ... 04/14 21:54
https://moscowremontnik.ru https://moscowremontnik.ru: Слышал много положительных отзывов о Московском ... 04/14 19:08
https://mellstroy.at https://mellstroy.at: Hi there! This is my first visit to your blog! We ... 04/14 19:03
https://russ-remont.ru/ https://russ-remont.ru/: Очень толковая статья, сохраню себе. 04/14 18:45
https://russ-remont.ru/ https://russ-remont.ru/: Приятно видеть профессиональный подход к делу. 04/14 17:56
https://russ-remont.ru/ https://russ-remont.ru/: Ваши советы сэкономили мне кучу времени. 04/14 17:39
https://russ-remont.ru/ https://russ-remont.ru/: Русский Ремонт — отличный выбор для тех, кто ценит... 04/14 17:26
https://www.remontexpress.ru https://www.remontexpress.ru: Радует, что компания работает официально по догово... 04/14 17:20