Ruby仅在序列具有 nil 值时才压缩序列,如何压缩“”空值
问问题
304 次
3 回答
7
像这样的东西:
a = [1, nil, 2, '', 3]
a.reject{|x| x == '' || x.nil?} # => [1, 2, 3]
于 2012-06-19T12:28:02.763 回答
3
与 Sergio 类似的方法:
irb(main):006:0> a = [1,nil,2,''] => [1, nil, 2, ""]
irb(main):007:0> a.reject!{|x| x.nil? || x == ''} => [1, 2]
于 2012-06-19T12:31:37.190 回答
3
我知道这没有 Ruby on Rails 标记,但是如果您使用该框架,恕我直言,最好的解决方案是:
a = [1, nil, 2, '', 3]
a.select(&:present?)
#=> [1, 2, 3]
在普通的 Ruby 中,我会选择Sergio 的答案,或者a.select { |x| x.empty? || x.nil? }
如果数组只能包含String
s 和nil
s。
于 2012-06-19T15:37:40.227 回答