swift - 在字典数组中找到最大值

标签 swift dictionary

我需要在 [[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

另一种选择是使用 mapmax:

let maxValue = data.map { $0["value"] as! Int }.max()!

所有这些示例都假定数组不会为空,并且每个字典都有一个有效的 Int 值用于 "value" 键。如果这些假设无效,请根据需要调整代码。

关于swift - 在字典数组中找到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53075979/

相关文章:

swift - 使用 Swift 在 MapView 上绘制多边形

ios - 如何将文本放在场景包中的节点上?

python - 对列表中的列表中的字典进行列表理解

c++ - 发现元素何时插入到 std::map

ios - 如何在 Swift 中创建和访问 NSDictionary

python - 打印带有重复键的多维字典

swift - 在 Swift 中使用 UnsafeMutablePointer 编码和解码字符串

swift - 我试图在 View Controller 之间传递数据,但 16 个变量中只有一半传递?

swift - 无法将类型 'UIAlertAction' 的值转换为预期的参数类型 'UIViewController'?

python - 给定 3 个不同大小的字典,我如何找到交集和值?