我有一个包含字典的数组。
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)
感谢您的帮助!
答案 0 :(得分:0)
您可以像在示例中一样使用max
。
let arr = [["test":1], ["test":4], ["test":3], ["test":2]]
print(arr.max { $0["test"]! < $1["test"]! })
这使字典具有最高的价值。
当然,除非保证每个词典确实具有一个!
键,否则"text"
的使用是不好的。
还要注意,使用max
仍将导致整个数组被迭代。您无法避免这种情况,除非您的字典始终按值排序。然后,在那种情况下,只需使用last
而不是max
。