如何使用Ramda中的remove方法从对象数组中删除空对象?

4

Ramda removeRamda Repl link

以下是给定的示例,它从数组中删除特定的数字: R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8] 现在我创建了一个对象数组,其中一个为空:
var objArray = [{id: 1, name: 'Leon'},{id: 2, name: 'Paulo'},{}];

当我尝试如下操作时: R.remove({}, objArray); 或者 R.remove(R.isEmpty, objArray); 它将返回一个函数:

enter image description here

为什么你认为会是这样呢?
1个回答

10
搞定了:

const filteredAlerts = R.filter(Util.notEmpty, res.alerts);

我需要通过筛选非空对象来进行过滤。

这是我的Util.notEmpty函数:

const notEmpty = R.compose(R.not, R.isEmpty);


15
定义notEmpty的更好方式是 R.complement(R.isEmpty)。甚至更好的做法是使用 R.reject 而不是 R.filter。表达式将变为 R.reject(R.isEmpty, res.alerts),不需要辅助函数。 :) - davidchambers
2
@LeonGaban,关于ramda的问题,davidchambers会是你的主要联系人。 - Mulan
@naomik 谢谢!现在开始关注他,喜欢 Ramda :) - Leon Gaban

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接