【发布时间】:2011-07-06 08:15:08
【问题描述】:
(1..4).collect do |x|
next if x == 3
x + 1
end # => [2, 3, nil, 5]
# desired => [2, 3, 5]
如果满足next 的条件,则collect 将nil 放入数组中,而我要做的是将no 元素放入返回的数组中,如果条件满足。如果不对返回的数组调用delete_if { |x| x == nil },这是否可能?
(使用 Ruby 1.8.7;我的代码摘录非常抽象)
【问题讨论】:
-
在 2.7 中引入了一个真正快速的专用解决方案:
filter_map,more info here。
标签: ruby enumerable