CoffeeScriptで学ぶUnderscore.js(Chain編)。今回で15回目、ようやく最終回です。
chain
_.chain(object)
chainは、underscoreのメソッドを次々と連結して実行できる便利なメソッドです。
_ = require 'underscore' users = [ {name : 'curly', age : 25}, {name : 'moe', age : 21}, {name : 'larry', age : 23} ] youngest = _.chain(users) .sortBy (user)-> user.age .map (user)-> user.name + ' is ' + user.age .first() .value() console.log youngest実行結果
$ coffee chain.coffee moe is 21
_.chain(users)でchainに配列を与えています。次にsortByでage順に並べます。次のmapで「◯◯ is 年齢」の出力を作成します。firstで最初の行を取得し、最後にvalueで値にしています。
Underscore.jsでは、
_.map [1,2,3], (n)-> n * 2
は、以下のようにも記述できます。
_([1,2,3]).map (n)-> n * 2
ですので、上記のchainの部分は以下のように分解できます。
sorted = _(users).sortBy (user)-> user.age mapped = _(sorted).map (user)-> user.name + ' is ' + user.age first = _(mapped).first() value = _(first).value()
value
_(obj).value()
valueは、objを展開します。chainの最後に負荷することで値として展開できます。
_ = require 'underscore' console.log _([3,2,6]).value()実行結果
$ coffee value.coffee [ 3, 2, 6 ]
Underscore.jsは、JavaScriptを強力にサポートするパッケージです。是非とも使いこなしてみましょう。
関連ページ
- CoffeeScriptで学ぶ Underscore.js 07(Array編)
- CoffeeScriptで学ぶ Underscore.js 06(Array編)
- CoffeeScriptで学ぶ Underscore.js 05(Collection編)
- CoffeeScriptで学ぶ Underscore.js 04(Collection編)
- CoffeeScriptで学ぶ Underscore.js 03 (Collection編)
- CoffeeScriptで学ぶ Underscore.js 02(Collection編)
- CoffeeScriptで学ぶ Underscore.js 01(Collection編)