Underscore.jsでメソッドチェインの書き方

スポンサーリンク

ここ2〜3日、JavaScript を書く時に Underscore.js を使い始めてみました。JavaScript で様々なデータを操作する際に、便利なメソッドが沢山用意してあるライブラリで、これが自分には超しっくりきました。Ruby 書く人だったら、きっと気にいるんじゃないかな〜と思います。

Underscore.js

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

以下 Qiita の記事を先日読んだのが、使い始めたきっかけです。

JavaScriptで関数型プログラミングを強力に後押しするUnderscore.jsのおすすめメソッド12選(lodashもあるよ) – Qiita

基本的に上記の記事で紹介してあるメソッドを使えば、おおかたの処理が簡単に書けます。each, map, select (filter), include (contains) など Ruby でお馴染みのメソッドが用意されてるので、JavaScript で配列などを回す時の array.length + for ループで処理みたいなコードを減らせて良い感じです。

Underscore.js の chain でメソッドチェイン

ただ上記の Qiita 記事には、メソッドをチェインして書く方法が紹介してなかったので、Underscore.js のドキュメントを見てメソッドチェーンの書き方を調べた。chain メソッドを使います。

Underscore.js#chain

ドキュメントの例、一番若い人を出力。

_.chain(object) に続けて .(ドット)でメソッドを繋いで処理していく。

その他、適当に操作してみます。年齢の昇順(若い順)にソート。

コレクションなオブジェクトをそのまま取得する場合も、最後に .value() が必要です。

年齢の降順(年の順)にソート。

23歳以上の人を抽出。

1 から 10 までの数字の偶数の2乗のうち、30より大きい物を抽出。

1 から 10 までの数字の偶数の2乗のうち、最大値を抽出。

結構 Ruby ライクにメソッドチェインが書けて気持ちいい。callback の function が Ruby でメソッドに渡すブロックに相当する感じです。以上、Underscore.js での method chaining の紹介でした!

スポンサーリンク
オライリーのJavaScritp本(通称サイ本)は、昔かなり読み込みました。
 
スポンサーリンク

Leave Your Message!