swift - Swift:获取字典数组中键的最大值
问题描述
我有一个包含字典的数组。
let arr = [["test":1], ["test":2], ["test":3], ["test":4]]
我现在需要获取包含键“test”的最高值的一个字典(无需遍历所有内容)。我在想,filter(_:)
但这只会过滤掉。map(_:)
也不起作用,因为我需要过滤而不是映射。
有一个示例如何获取字典中具有最高值的键,但这在这种情况下不起作用。
let hues = ["Heliotrope": 296, "Coral": 16, "Aquamarine": 156]
let greatestHue = hues.max { a, b in a.value < b.value }
print(greatestHue)
任何帮助表示赞赏!
解决方案
你可以max
在你的例子中使用很多。
let arr = [["test":1], ["test":4], ["test":3], ["test":2]]
print(arr.max { $0["test"]! < $1["test"]! })
这给出了具有最高值的字典。
当然,!
除非保证每个字典都有一个"text"
键,否则使用 是不好的。
另请注意, usingmax
仍会导致整个数组被迭代。除非您的字典始终按值排序,否则您无法避免这种情况。那么在这种情况下,只需使用last
而不是max
.
推荐阅读
- python - 如何使用以下逻辑在python中编写罗马数字到整数转换的代码
- linux - for循环中的slurm作业名称
- c# - 从现有的 Json 流中删除 $ type 和 Id 属性?
- javascript - 使用隐藏和显示自动更新jquery中的多个下拉菜单
- sql - 查找有多个不同值的 SQL 表行
- java - 调用 Retrofit 返回 null
- angular - 如何返回来自响应的数据
- r - 用 ggplot 映射州边界
- python - 来自 Data 的 Pandas DataFrame DDL 语句
- laravel - AWS ElasticSearch Service 上的身份验证最终失败