Нахождение счетчика общего количества строк, соответствующих критериям в массиве | Swift - PullRequest
0 голосов
/ 06 мая 2020

По сути, у меня есть табличное представление со строками, которые заполняются с помощью JSON со следующей структурой:

struct Section {
    let name : String
    var items : [Portfolio]
}

struct Portfolio: Decodable {

    let person: String
    let number: String
    var checking: Int

    enum CodingKeys : String, CodingKey {
        case customer, serial, checking
    }

}

Значение проверки может быть либо 1, либо 0

Как я могу подсчитать общее количество строк, у которых есть проверка = 1?

В настоящее время я пытаюсь сделать что-то вроде этого, но не уверен, что это направление в правильном направлении:

let item = sections[indexPath.section].items[indexPath.row]
let a = item.checking
let count = a.filter({ $0 % 2 == 0 }).count

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Вот как это сделать

func totalItems(_ sections: [Section]) -> Int {
  return sections.reduce(0) { $0 + $1.items.filter{ $0.checking == 1 }.count }
}
0 голосов
/ 06 мая 2020

Вам нужно (если для всех разделов)

let total = sections.map { $0.items.filter { $0.checking == 1 }.count }.reduce(0,+)

если для указанного c раздел

let total = sections[indexpath.section].items.filter { $0.checking == 1 }.count 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...