我有一个数组数组,我想删除所有在删除空格后具有nil或空元素的项目。看看这个片段:
x = Array.new
x << ["A","B", " ", "D"]
x << [""," ", nil, ""]
x << ["E","Q", "F", "M"]
我想删除第二条记录,因为它不包含任何实际数据。
最好的方法是什么?我应该简单地迭代数组并编写if-else条件来测试吗?
答案 0 :(得分:13)
如果使用纯Ruby,则可以
x.reject{ |arr| arr.all? {|elem| elem.nil? || elem.strip.empty? }}
如果使用rails,可以使用辅助方法
x.reject{ |arr| arr.all?(&:blank?) }
答案 1 :(得分:4)
x.reject { |a| a.join.strip.length == 0 }
答案 2 :(得分:0)
如果第一个数组将包含nil,那么当Chubas变体不起作用时。 让我们稍微修改一下:
(使用铁轨)
x.compact.reject{ |arr| arr.all?(&:blank?) }