我有一个数组:

scores = [1, 2, 3, "", 4]

我想删除所有空白值。但是当我运行这个:
puts scores.reject(&:empty?)

我收到一个错误:
undefined method `empty' for 1:Fixnum

如何在一个步骤中从数组中删除不是整数的值?我正在使用Ruby 1.9.3。

最佳答案

它很简单:

scores.grep(Integer)

请注意,如果您打算映射值,则可以在下面的代码块中执行此操作:
scores.grep(Integer){|x| x+1 }

如果您想做同样的事情,但您的数字是字符串,则有好处:
scores.grep(/\d+/){|x|x.to_i}

关于ruby - Ruby使用.reject从数组中删除零值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19430266/

10-13 07:40