Instance MethodSwift

    compactMap(_:)

    Returns an array containing the non-nil results of calling the given transformation with each element of this sequence.

    func compactMap<ElementOfResult>(_ transform: (Self.Element) throws -> ElementOfResult?) rethrows -> [ElementOfResult]

    Parameters

    transform

    A closure that accepts an element of this sequence as its argument and returns an optional value.

    Returns

    An array of the non-nil results of calling transform with each element of the sequence.

    Overview

    Use this method to receive an array of non-optional values when your transformation produces an optional value.

    In this example, note the difference in the result of using map and compactMap with a transformation that returns an optional Int value.

    let possibleNumbers = ["1", "2", "three", "///4///", "5"]
    
    let mapped: [Int?] = possibleNumbers.map { str in Int(str) }
    // [1, 2, nil, nil, 5]
    
    let compactMapped: [Int] = possibleNumbers.compactMap { str in Int(str) }
    // [1, 2, 5]