我需要找到数组中的最大值[[String:Any]],如下所示:
"date":someDate
"value":8
.
.
"date":anotherDate
"value":13
.
Run Code Online (Sandbox Code Playgroud)
我需要最大值( 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
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用mapand max:
let maxValue = data.map { $0["value"] as! Int }.max()!
Run Code Online (Sandbox Code Playgroud)
所有这些示例都假设数组不会为空,并且每个字典都有一个有效的Int键值"value"。如果这些假设无效,请根据需要调整代码。
| 归档时间: |
|
| 查看次数: |
1061 次 |
| 最近记录: |