我需要在类似于[[String:Any]]
的数组中找到最大值,请帮忙翻译。
"date":someDate
"value":8
.
.
"date":anotherDate
"value":13
.
我需要获取数组中的最大值(13),是否有一种简单的方法不使用传统循环来提取所有数字等?
我需要在类似于[[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()!
所有这些示例都假定数组不会为空,并且每个字典具有有效的"value"
键的Int
值。如果这些假设无效,请根据需要调整代码。
Array
的max(by:)
方法了吗? - rmaddy