将逻辑NOT应用于propEq并在ramda中过滤

时间:2016-03-10 16:08:11

标签: javascript functional-programming ramda.js

我通过Ramda进行功能编程感觉很自然,而且我正在努力寻找一些听起来应该很容易的事情。

我希望数组中的所有条目等于某个值。

例如在纯粹的js中

const filtered = source.filter(entry => entry.name !== 'something');

在Ramda中有一个propEq所以我可以很容易地得到所有匹配值的元素,例如

const filtered = R.filter(R.propEq('name','something'),source);

但我看不出如何反之,只返回等于某个值的值。

我确信这一定非常容易,但我很难看到内置功能,我能想出的最接近的是:

const others = R.filter(rate => rate.name !== name,res.rates);

但我确定必须有更好的方法吗?

1 个答案:

答案 0 :(得分:15)

是的,Ramda的反向为filter,名为reject

R.reject(R.propEq('name', 'something'))(source)

您可以在 Ramda REPL

上看到这一点