Array.compactMap(_:)
Преобразует и отбрасывает nil.
Сигнатура
func compactMap<T>(_ transform: (Element) -> T?) -> [T]Применяет transform к каждому элементу и собирает только не-nil результаты, разворачивая опционалы. Часто используется при парсинге строк в числа.
let strs = ["1", "x", "3"]
let nums = strs.compactMap { Int($0) }
print(nums) // [1, 3]