将逻辑 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

上看到这个