0

私はこのようなJavaScriptモデルを持っています:

var scope = {
  entries : [ 
      { label : 'one', value : 'first entry'}, 
      { label : 'two', value : 'second entry'}, 
      { label : 'a', value : 'x'}
  ],
  order : 'label'; // may also contain 'value'
}

今、私は order の値に応じてエントリを並べ替え、それもキャッシュしたいと考えています。

私はクロージャを使用する方法を知っています:

_.memoize( 
    function() {
        return _.sortBy( scope.entries, scope.order);
    }, 
    _.partial( _.result, scope, 'order')
)

_.sortBy を呼び出すクロージャーを、2 番目のパラメーター (_.partial によって生成される関数) のようなものに置き換えることは可能ですか?

明確にするために:私が欲しいのは、関数にラップせずに「ソート順」のものを宣言する方法です。次のようになります。

_.memoize( 
        // line below doesnt work, just to clarify what i want :-)
    _.sortBy( scope.entries, _.result( scope, 'order')), 

    _.partial( _.result, scope, 'order')
)
4

1 に答える 1