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

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

x = Array.new x << ["A","B", " ", "D"] x << [""," ", nil, ""] x << ["E","Q", "F", "M"] 

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

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

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

 x.reject{ |arr| arr.all? {|elem| elem.nil? || elem.strip.empty? }} 

如果使用rails,可以使用帮助器方法

 x.reject{ |arr| arr.all?(&:blank?) } 

关键方法是rejectblank?

 x.reject { |a| a.join.strip.length == 0 } 

如果第一个数组将包含nil,那么当Chubas变体不起作用时。 让我们稍微修改一下:

(使用导轨)

 x.compact.reject{ |arr| arr.all?(&:blank?) }