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
flatMap
is used to remove non-nil values which is shown above. Refer – https://developer.apple.com/documentation/swift/sequence/2907182-flatmap -
The other
flatMap
is used to concatenate results. Refer – https://developer.apple.com/documentation/swift/sequence/2905332-flatmap