in a previous question i asked how to split an array into two equal pieces in ruby on rails. this is how i did it:
>> a = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
>> a.in_groups_of( (a.size/2.0).ceil ) if a.size > 0
=> [[1, 2, 3], [4, 5, nil]]
now i've got a nested array that contains nil elements if the size of the array is odd. how can i remove the nil elements from the nested arrays? i want to do something like
a.compact
but unfortunately that doesn't work, ruby only removes nil elements on the first level and not recursively. does ruby provide any nice solutions for this problem?