lodashで良く使う2つのテクニック

最近はlodashを良く使うようになったので自分の備忘録としていい機会なので今後のためにまとめておく。

ショートカット記法

ショートカット記法を覚えたらfilterやfind,map等で配列を操作するコードがかなりシンプルになって生産性が高まった。

_.find(collection,dict)

配列の中からage.S === 300 となるオブジェクトを取得する。undefinedチェックをしなくていいので便利。

_.find([{age: {S:300}},{age:{}},{age: undefined}],{age: {S:300}})
// {age: {S: 300}}

_.map(collection,key)

配列の中に入っているオブジェクトのage.Sを全て返す。

_.map([{age: {S:300}},{age:{S:33}}],'age.S')
// [300,33]

メソッドチェーン

メソッドチェーンを実現するにはtapとchainがあるけど、 chainは配列の中身のデータを加工することができないが、tapだと配列の中身のデータを加工することが出来るという違いがある。

_.chain

var users = [
  { 'user': 'barney',  'age': 36 },
  { 'user': 'fred',    'age': 40 },
  { 'user': 'pebbles', 'age': 1 }
];

var youngest = _
  .chain(users)
  .sortBy('age')
  .map(function(o) {
    return o.user + ' is ' + o.age;
  })
.head()
.value() // value()で返り値を取得
// → 'pebbles is 1'

_.tap

_([1, 2, 3])
 .tap(function(array) {
   // Mutate input array.
   array.pop();
 })
 .reverse()
 .value();
// → [2, 1]

Related Contents

Pickup Contents