如何使用Ramda remove从对象Array中删除空对象?

Leo*_*ban 3 javascript arrays functional-programming ramda.js

Ramda删除: Ramda Repl链接

以下是给定的示例,它从数组中删除特定数字:

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'},{}];
Run Code Online (Sandbox Code Playgroud)

当我尝试:

R.remove({}, objArray);

要么

R.remove(R.isEmpty, objArray);

它返回一个函数:

在此输入图像描述

你为什么这么想?

Leo*_*ban 7

弄清楚了:

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

我需要过滤非空的对象.

这是我的Util.notEmpty功能:

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

  • 定义`notEmpty`的更好方法是`R.complement(R.isEmpty)`.更好的是,可以使用`R.reject`而不是`R.filter`.然后表达式将成为`R.reject(R.isEmpty,res.alerts)`而不需要辅助函数.:) (12认同)
  • @LeonGaban,关于ramda的东西,[davidchambers](https://github.com/ramda/ramda/graphs/contributors)将成为您的首选 (2认同)