Как я могу найти определенный элемент из пользовательского объекта в огромном массиве - Swift - PullRequest
0 голосов
/ 04 ноября 2019

Как я могу найти конкретный элемент из пользовательского объекта в огромном массиве, как показано ниже?

struct ResponseCourseTypeFilter {
    var returnCourseTypeFilter: [[String : String]]
}

struct ViewModelCourseTypeFilter {
    struct DisplayedCourseTypeFilter {
        var titlesCourseType: String
        var isSelectedType: Bool
    }
    var displayedCourseTypeFilter: [DisplayedCourseTypeFilter]
}

Мне нужно получить значения titlesCourseType, равные true.

My array огромен.

Ответы [ 2 ]

1 голос
/ 04 ноября 2019

Если предположить, что экземпляр ViewModelCourseTypeFilter подобен,

let viewModel = ViewModelCourseTypeFilter(displayedCourseTypeFilter: [
    DisplayedCourseTypeFilter(titlesCourseType: "First", isSelectedType: true),
    DisplayedCourseTypeFilter(titlesCourseType: "Second", isSelectedType: false),
    DisplayedCourseTypeFilter(titlesCourseType: "Third", isSelectedType: true)
])

Тогда вы можете получить все значения titlesCourseType, где isSelectedType = true похоже,

let arr = viewModel.displayedCourseTypeFilter.compactMap({ $0.isSelectedType ? $0.titlesCourseType : nil })
print(arr) //["First", "Third"]
0 голосов
/ 04 ноября 2019

использовать

let arr = viewModel.displayedCourseTypeFilter.filter { $0.isSelectedType }

лучше?

...