我需要在 [[String:Any]]
数组中找到最大值,如下所示:
"date":someDate
"value":8
.
.
"date":anotherDate
"value":13
.
我需要最大值(13),有没有一种无需传统循环遍历数组并提取所有数字等的简单方法?
最佳答案
这是使用 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"
键。如果这些假设无效,请根据需要调整代码。
关于swift - 在字典数组中找到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53075979/