Как отфильтровать массив


#1

Есть массив

struct Catalog {
var name: String
var region: [Region]
}

struct Region {
var name: String
var type3: String
}

var catalog: [Catalog] = [
Catalog(name: "Москва", region: [
    Region(name: "1", type3: ""),
    Region(name: "1", type3: ""),
    Region(name: "1", type3: "Праздник"),
    Region(name: "1", type3: ""),
]),
Catalog(name: "Новгород", region: [
    Region(name: "2", type3: ""),
    Region(name: "2", type3: "Праздник"),
    Region(name: "2", type3: ""),
    Region(name: "2", type3: "Праздник"),
    Region(name: "2", type3: ""),
]),
Catalog(name: "Питер", region: [
    Region(name: "3", type3: ""),
    Region(name: "3", type3: "Праздник"),
    Region(name: "3", type3: ""),
    Region(name: "3", type3: "Праздник"),
    Region(name: "3", type3: "Праздник"),
    Region(name: "3", type3: "Праздник"),
]),
Catalog(name: "Уфа", region: [
    Region(name: "4", type3: ""),
    Region(name: "4", type3: "Праздник"),
]),
Catalog(name: "Смоленск", region: [
    Region(name: "5", type3: ""),
    Region(name: "5", type3: ""),
    Region(name: "5", type3: "Праздник"),
])
]

Как отфильтровать данный массив по ключу type3: “Праздник”?
Чтобы в итоге массив был без строк с ключом “Праздник”


#2
catalog = catalog.map { c -> Catalog in
    Catalog(
        name: c.name,
        region: c.region.filter { $0.type3 != "Праздник" }
    )
}

#3

Большое спасибо, то что нужно!