如何压缩数组中的空元素

时间:2012-06-19 12:25:30

标签: ruby

Ruby compacts序列只有在它具有nil值时,如何压缩“”空值

3 个答案:

答案 0 :(得分:7)

这样的事情:

a = [1, nil, 2, '', 3]
a.reject{|x| x == '' || x.nil?} # => [1, 2, 3]

答案 1 :(得分:3)

对塞尔吉奥的一种类似方式:

irb(main):006:0> a = [1,nil,2,'']                   => [1, nil, 2, ""]
irb(main):007:0> a.reject!{|x| x.nil? || x == ''}   => [1, 2]

答案 2 :(得分:3)

我知道这里没有Ruby on Rails标签,但如果您使用该框架,恕我直言的最佳解决方案是:

a = [1, nil, 2, '', 3]
a.select(&:present?)
#=> [1, 2, 3]

在普通的Ruby中,如果数组只能包含a.select { |x| x.empty? || x.nil? }String,我会选择Sergio's answernil