underscore.jsを使って特定のvalueをもつkeyのみ取得する方法

最近jsを書いているとき、可能であれば関数型プログラミングを心がけている。
そのほうが一時的な変数を書かなくてい済ませるし、
やはり書いていて気持ちがよい笑

今回は、 underscore.jsを使ってオブジェクト内の 特定のvalueをもつkeyのみを取得する方法がわかったので記録しておく

特定のvalueをもつもののみ取得する

var obj = {
  A : '1',
  B : '1',
  C : '0',
  D : '1'
};

_.pick( obj, function (v) {
  return v === '1'
})

// console
> { A : '1', B : '1', D : '1' }

keyだけがほしい場合

_.chain(obj)
 .pick( function (v) {
    return v === '1'
 })
 .keys()
 .value()

// console
> ["A", "B", "D"]

アロー関数を使うともっと短くなる

_.chain(obj)
 .pick( v =>  v === '1' )
 .keys()
 .value()