Вы можете использовать zip
и compactMap
:
let nonEmptySections = zip(sections, sectionNames).compactMap { $0.isEmpty ? nil : $1 }
Использование zip
имеет то преимущество, что вы не получите сбоев, если два массива имеют разные размеры. С другой стороны, это может привести к незначительным ошибкам.
Я бы рекомендовал вместо этого использовать структуру данных для моделирования ваших данных:
struct Section {
let name: String
let profiles: [Profile]
}
Это должно упростить процесс обработкиразделы в вашем приложении. А с помощью предложения @ Alexander вы можете добавить свойство isEmpty
в структуру, что сделает использование
extension Section {
var isEmpty: Bool { return profiles.isEmpty }
}
... later in the code
let nonEmptySections = sections.filter { !$0.isEmpty }
еще проще.