Вам нужно first
, которое у вас есть.Затем вы можете map
этот результирующий массив получить массив массивов.Затем вы можете, наконец, использовать reduce
для объединения этих массивов.
let selectedDestinations = self.chart.houses
.first(where: {"house_\($0.houseId)" == id})?.planets
.compactMap { self.myAspectDestination[$0.name] }
.reduce([], +)
Использование compactMap
вместо map
устраняет необходимость использования ?? []
selecteDestinations
будет[String]?
.Это будет nil
, если first
не удастся.Вы можете добавить ?? []
в самый конец, если вам нужен пустой массив, если first
не удастся.