Creating an extension to filter nils from an Array in Swift

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

Leave a Comment