Допустим, у меня есть простая структура как таковая:
struct Model: Codable {
var myVariable: String
var myVariable2: String?
}
И скажем иногда, myVariable2 - это значение типа ether nil / null (из json) или буквальная пустая строка как таковая "" ,
Как бы я отфильтровал пустой ноль / ноль и удалил эту конкретную структуру из массива структур?
Я попытался:
Model.compactMap{ $0.myVaraible2 }.flatMap { $0 }
, чтобы отфильтровать заданную строку c. Но, очевидно, я не получаю желаемого результата, потому что это неправильно. Итак, чтобы сначала отфильтровать значение nil / empty, а затем удалить эту структуру из массива, это должно быть довольно просто, да?
Могу ли я отфильтровать его сразу после вызова JSONDecoder?
let model = try JSONDecoder().decode([Model].self, from: data)
что-то вроде: я знаю, что следующая строка кода не годится. =)
for element in model {
if element.myVariable2.isEmpty || element.myVariable2 == "" {
model.remove(at: what to put here ? )
}
Я знаю, что для l oop ПЛОХО !!! но как бы это исправить или сделать что-то более быстрое?
Спасибо!