У меня есть несколько критериев для фильтрации массива.Эти критерии являются дополнительными и хранятся в структуре, поскольку пользователь может выбрать только часть из них.У меня есть множество моделей.Я пытался использовать метод фильтра, но вы должны предоставить необязательные критерии для него.Какой подход должен быть, чтобы избавиться от опций и добавить эти критерии к методу фильтрации?
Структура фильтра с параметрами фильтрации
struct Filter {
var brand: String?
var price: Int?
var consuption: Int?
}
Класс модели
class CarOffer {
var brand: String
var price: Int
var color: String
var consumption: Int
}
И здесьчто я пытался сделать, но не повезло, потому что filter.price не является обязательным, и я не знаю, будет ли это или нет.Я понимаю, что я должен удалить необязательный, но как добавить критерии фильтра в метод фильтра в зависимости от его необязательности?Или я выбрал неправильный подход?
let offers: [CarOffer] = […]
func applyFilter(filter: Filter) -> [CarOffer] {
let filteredOffers = offers.filter { $0.brand == filter.brand && $0.price <= filter.price && $0.consumption <= filter.consumption }
return filteredOffers
}