lodash のチェーンで独自のカスタム関数を取得する方法はありますか。たとえば、次のようにします。
var l = [1,2,3]
var add = function(a, b){return a+b}
var r =_.chain(l).find(function(a){return a>1}).add(5).value()
=>r = 7
lodash のチェーンで独自のカスタム関数を取得する方法はありますか。たとえば、次のようにします。
var l = [1,2,3]
var add = function(a, b){return a+b}
var r =_.chain(l).find(function(a){return a>1}).add(5).value()
=>r = 7
もう 1 つのオプションは、チェーンを削除して、 を介して関数合成を活用すること_.flow
です。
ドキュメントから:
[フロー] 作成された関数の this バインディングを使用して、指定された関数を呼び出した結果を返す関数を作成します。連続する各呼び出しには、前の関数の戻り値が提供されます。
これは、Flow 内のすべての関数が、前の関数の出力を入力として受け取ることを意味します。実際には、これは Lodash API メソッドのみを使用することに限定されないことを意味しますが、次の関数がその戻り値を処理できる限り、好きな関数を組み合わせて一致させることができます。
var l = [1,2,3]
var add = _.curry((a, b) => a + b);
_.flow(
_.find(a => a > 1),
add(5),
)(l);
// => 7
NB - この例では Lodash の Functional バージョンを使用しています。それを使用したくない、または使用できない場合でも、同じ結果を得ることができます。Lodash に関する別の質問に対する他の回答を確認してください。