2016-04-05 16 views
1

Ramda.js/lodashでこのコードより「関数型プログラミング」スタイルを作ることができます。は、どのように私はこのコードのビットを持って

var fn = function(fn, name) { 
    this.commands.add(name, fn); 
}.bind(this); 

_.mapObjIndexed(fn, this.commandList); 

コードのこのビットを改善し、それを作るための方法がありますように私は感じますただ1行。私はいろいろな方法を試しましたが、私はramda.jsを初めて使っています。これが簡単で簡単な機能をいくつか見逃しているかもしれません。

+0

すべてを連結して、常に1行にすることができます。 – itdoesntwork

答えて

2

あなたはflip function/flip functionを探しているように見える:

_.mapObjIndexed(_.flip(this.commands.add), this.commandList); 

add機能のために.bind(this.commands)が必要な場合は、あなたが_.bindKey (this.commands, "add")を使用していることを短縮することができます。

引数の数が原因でフリップが正しく動作しない場合は、_.ary(…, 2)または_.binary(…)を投げる必要があります。

+0

ありがとうございます。これは完全に動作します: '_.mapObjIndexed(_。flip(_。bind(this.commands.add、this))、this.commandList)' –

+0

@SuchMuchCode:すべてのRamda、そう思いますか? Btw私はあなたが 'this.commands'ではなく' this'にバインドしているときにあなたが 'bind'を必要としないと思います。 – Bergi

+0

私は悪いです、私は実際にthis.commandsにバインドしています。私は上記のミスタイプです。そして、そうでなければ、私はバインドを使う必要はありません。 :) –

関連する問題