10

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
4

3 に答える 3

4

もう 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 に関する別の質問に対する他の回答を確認してください。

于 2017-07-05T15:14:18.503 に答える