As of Swift 2.0, you don’t need to write your own extension to filter nil values from an Array, you can use flatMap, which flattens the Array and filters nils:
let optionals : [String?] = ["a", "b", nil, "d"]
let nonOptionals = optionals.flatMap{$0}
print(nonOptionals)
Prints:
[a, b, d]
Note:
There are 2 flatMap functions:
-
One
flatMapis used to remove non-nil values which is shown above. Refer – https://developer.apple.com/documentation/swift/sequence/2907182-flatmap -
The other
flatMapis used to concatenate results. Refer – https://developer.apple.com/documentation/swift/sequence/2905332-flatmap