1
我決定使用Ramda編寫一個簡單的待辦事項應用程序,但我一直堅持一個與重構相關的問題。我認爲我這裏還有兩個功能可以重構: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")
但我只是不能包住我的頭圍繞此。我可以使用不同的參數排序來工作,但我想遵循數據最後的規則來創建簡潔的函數。
的數據傳遞給這些isItemCompleted和isItemEdited功能可能是這樣的:
let item = {states:["editing", "complete"]};
isItemCompleted(item); //true
任何(功能)的想法?