Ruby Method of the Day - Array.compact and Array.compact!

Posted by Kelly McCauley on Nov 12, 2007

Signature

array.compact   #=> new_array
array.compact!  #=> array or nil

array.compact returns new_array that contains all non-nil elements in array (nil elements removed). array.compact! either returns array with all nil elements removed or returns nil if no nil elements were removed.

Examples

1
2
3
4
5
6
a = [1, nil, nil, 4, nil]       #=> [1, nil, nil, 4, nil]
a.compact                       #=> [1, 4]
a                               #=> [1, nil, nil, 4, nil]
a.compact!                      #=> [1, 4]
a                               #=> [1, 4]
a.compact!                      #=> nil

Documentation Reference

Ruby version 1.8.6

www.ruby-doc.org : Array.compact, Array.compact!