将逻辑 NOT 应用于 propEq 并在 ramda 中进行过滤
Apply logical NOT to propEq and filter in ramda
我正在尝试使用 Ramda 进行函数式编程,但我正在为一些听起来应该很容易的事情而苦苦挣扎。
我想要数组中的所有条目,其中 属性 不 等于一个值。
例如纯js
const filtered = source.filter(entry => entry.name !== 'something');
在 Ramda 中有一个 propEq
所以我可以很容易地得到所有匹配值的元素,例如
const filtered = R.filter(R.propEq('name','something'),source);
但我看不出如何做相反的事情,只return 不的值等于一个值。
我相信这一定很简单,但我很难看到一个内置函数来做到这一点,我能想到的最接近的是:
const others = R.filter(rate => rate.name !== name,res.rates);
但我确定一定有更好的方法?
是的,Ramda 有一个反向的 filter
叫做 reject
:
R.reject(R.propEq('name', 'something'))(source)
你可以在Ramda REPL
上看到这个
我正在尝试使用 Ramda 进行函数式编程,但我正在为一些听起来应该很容易的事情而苦苦挣扎。
我想要数组中的所有条目,其中 属性 不 等于一个值。
例如纯js
const filtered = source.filter(entry => entry.name !== 'something');
在 Ramda 中有一个 propEq
所以我可以很容易地得到所有匹配值的元素,例如
const filtered = R.filter(R.propEq('name','something'),source);
但我看不出如何做相反的事情,只return 不的值等于一个值。
我相信这一定很简单,但我很难看到一个内置函数来做到这一点,我能想到的最接近的是:
const others = R.filter(rate => rate.name !== name,res.rates);
但我确定一定有更好的方法?
是的,Ramda 有一个反向的 filter
叫做 reject
:
R.reject(R.propEq('name', 'something'))(source)
你可以在Ramda REPL
上看到这个