How to remove all nil elements from an array in Ruby permanently

When you want to remove nil elements from a Ruby array, you can use two methods: compact or compact!. They both remove nil elements, but compact! removes them permanently.

In this shot, we will be talking about the compact! method. This method is used to remove every nil element in an array permanently.

Syntax

array.compact!

Parameters

This method does not take any parameters. It only needs an array to call the method.

Return Value

This method returns the original array with all nil values removed. If nothing is removed, then nil or nothing is returned.

Code Example

In the code example below, the use of compact! is demonstrated. With the use of this method, all nil values are removed.

# create arrays
arr1 = [1, nil, 2, 3, nil]
arr2 = ["a", "b", "c"]
arr3 = [true, false, nil]
arr4 = ["nil", nil, "true", "false"]
# remove nil values
arr1.compact!
arr2.compact!
arr3.compact!
arr4.compact!
# print the modified arrays
puts "#{arr1}"
puts "#{arr2}"
puts "#{arr3}"
puts "#{arr4}"

Free Resources