私はRamdaを使用して単純なtodoアプリケーションをコーディングすることに決めましたが、私は1つのリファクタリング関連の問題に取り組んできました。私が思うHere're二つの機能をリファクタリングすることができますRamda.jsリファクタリング
const isItemCompleted = R.pipe(
R.prop("states"),
R.contains("completed")
)
const isItemEdited = R.pipe(
R.prop("states"),
R.contains("editing")
);
あなたが見ることができるように、そこにいくつかのコードの重複があると私はより多くの状態を持っていた場合、これはさえメシエになるだろう。私はそのような重複機能を分離しようとしています:
const statesContains = R.flip(R.pipe(
R.prop('states'),
R.contains()
))
//I would like to use it like this:
const isItemCompleted = statesContains("completed")
const isItemEdited = statesContains("editing")
しかし、私はこれを回避することはできません。私はそれを異なる引数の順序で動作させることができますが、私は簡潔な関数を作成するデータの最後のルールに従いたいと思います。
let item = {states:["editing", "complete"]};
isItemCompleted(item); //true
どれ(機能)のアイデア:これらisItemCompletedとisItemEdited関数に渡される
データは次のようなものだろうか?