use Enumerable # map
ruby-1.8.7-p249 > [1,2,nil,4].map{|item| puts item}
1
2
nil
4
=> [nil, nil, nil, nil]
обратите внимание, что, хотя для каждого элемента массива возвращается ноль, исходный массив остается таким же, как был.если вы сделаете что-то для каждого элемента в массиве, он вернет значение каждой операции.Вы можете избавиться от нуля, купив его.
ruby-1.8.7-p249 > [1,2,nil,4].map{|item| item + 1 unless item.nil? }
=> [2, 3, nil, 5]
ruby-1.8.7-p249 > [1,2,nil,4].map{|item| item + 1 unless item.nil? }.compact
=> [2, 3, 5]