从没有空白的数组数组中删除所有项目

Mri*_*lla 1 ruby arrays

我有一个数组数组,我想删除所有在剥离空格后具有nil或空元素的项目.看看这个片段:

x = Array.new
x << ["A","B", " ", "D"]
x << ["","  ", nil, ""]
x << ["E","Q", "F", "M"]
Run Code Online (Sandbox Code Playgroud)

我想删除第二条记录,因为它不包含任何实际数据.

最好的方法是什么?我应该简单地迭代数组并编写if-else条件来测试吗?

Chu*_*bas 13

如果使用纯Ruby,你可以做到

x.reject{ |arr| arr.all? {|elem| elem.nil? || elem.strip.empty? }}
Run Code Online (Sandbox Code Playgroud)

如果使用rails,可以使用辅助方法

x.reject{ |arr| arr.all?(&:blank?) }
Run Code Online (Sandbox Code Playgroud)

关键方法是rejectblank?