[英]Ramda - filtering array of objects - curried fn parameters order
我想在ramda.js中實現過濾函數生成器。 在我看來,它應該這樣運行:
var a = filterFn(arrOfObjects)
var b = a(keyName)
var c = b(value)
實現此順序的參數非常重要,因為可以使用不同的條件過濾同一數組。
目前,我有以下代碼:
var g = R.curryN(2, R.compose(R.filter(R.__)(R.__), R.propEq))
g('classId')(2)(input)
但我想將“輸入”作為第一個參數:
g(input)('classId')(1)
這是一個ramda REPL: 代碼
提前致謝!
您實際上並不希望此功能沒有意義:)
var g = R.compose(
R.curryN(2, R.compose)(R.__, R.propEq),
R.curryN(2, R.compose),
R.flip(R.filter)
)
或者至少確保未來的維護者永遠不會知道您的住所:)
如何獲得像這樣的可怕的東西。
首先,編寫功能明確的版本。
list => prop => value => R.filter(R.propEq(prop)(value))(list)
要么
list => prop => value = R.flip(R.filter)(list)(R.propEq(prop)(value))
然后轉到Pointfree.io並使用一些haskell語法\\xyz -> fx (gyz)
。 其中f
如果flip filter
和g
是propEq
工具將產生(. g) . (.) . f
(. g) . (.) . f
然后,將其轉換回javascript,以使將來的維護人員哭泣。 演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.