(1..4).collect do |x|
next if x == 3
x + 1
end # => [2, 3, nil, 5]
# desired => [2, 3, 5]
Если условие для next
выполнено, collect
помещает nil
в массив, тогда как то, что я пытаюсь сделать, не помещает элемент в возвращенный массив, если условие выполнено. Возможно ли это без вызова delete_if { |x| x == nil }
в возвращаемом массиве?
(Использование Ruby 1.8.7, мой фрагмент кода сильно абстрагирован)