Вот одно из возможных решений с использованием Array max(by:)
.
Обратите внимание, что в этом примере используется много операторов сбоя (!
). Безопасно распакуйте, как необходимо для вашего реального кода:
let data: [[String: Any]] = [
["date":Date(), "value":8],
["date":Data(), "value":13],
]
let maxEntry = data.max { ($0["value"] as! Int) < ($1["value"] as! Int) }!
let maxValue = maxEntry["value"] as! Int
Другой вариант - использовать map
и max
:
let maxValue = data.map { $0["value"] as! Int }.max()!
Все эти примеры предполагают, что массив не будет пустым, и что каждый словарь имеет действительное значение Int
для ключа "value"
. При необходимости измените код, если эти предположения неверны.