0

如何从像下面这样的巨大数组中的自定义对象中找到特定项目?

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

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

我需要得到的值titlesCourseTypetrue.

array的很大。

4

2 回答 2

1

如果假设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"]
于 2019-11-04T09:51:39.307 回答
0

采用

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

更好的?

于 2019-11-04T10:54:34.743 回答