在Ruby 1.9中替换Array#nitems?

时间:2011-11-20 22:27:48

标签: ruby arrays

Ruby 1.8有一个方法nitems用于数组。这似乎已经从Ruby 1.9中消失了。 1.9中是否有替代品?

1 个答案:

答案 0 :(得分:7)

它已从Ruby 1.9中删除

你可以改用它:

array = [nil, 2, "a", nil, 'b', nil]
array.count{|x| !x.nil?}
 => 3 

或者如果您的Ruby版本不再使用它,您可以自己重新定义它:

if ! Array.method_defined?(:nitems)
  class Array
    def nitems
      count{|x| !x.nil?}
    end
  end
end


a = [nil, 2, "a", nil, 'b', nil]
a.nitems
 => 3