swift - 如何找到与 x [Swift] 差异最小的字典值
问题描述
使用 Swift,我正在尝试锻炼与此答案相同的复杂过滤器或排序,而是用于字典和它的值而不是数组。我的整数值也可以是任何整数值——没有限制。给定一个不在数组中的整数值(比如 X),我想找到它自己和 X 之间差异最小的数组元素:
let playerGuesses = ["Mike": 432, "Chrissy": 164]
let x = 222
数组版本给出的答案如下:
let closest = numbers.enumerated().min( by: { abs($0.1 - x) < abs($1.1 - x) } )!
print(closest.element) // 7
print(closest.offset) // 2
我如何为字典值完成类似的事情?
解决方案
基本上是一样的。只需放下enumerated()
并使用key
and value
with closest
。
let playerGuesses = ["Mike": 432, "Chrissy": 164]
let x = 222
let closest = playerGuesses.min { abs($0.1 - x) < abs($1.1 - x) }
print(closest?.key, closest?.value)
在min
闭包内部,$x.0
是键,$x.1
也是值。
推荐阅读
- java - Java EntityManager 事务被破坏,如何定位导致它的 SQL?
- reactjs - 在构建 webpack 时安装 react datepicker 失败
- flutter - 为什么 Flutter 在尝试退出应用程序时会在控制台中抛出 NoSuchMethodError,即使它在模拟器中工作也是如此?
- autohotkey - 将光标移动到文档的最左侧?
- c++ - LLVM:如何修复“引用另一个函数中的参数”
- javascript - Http 请求在 PostMan 中有效,但在 JS 中无效
- java - 有没有办法覆盖 Android Room Entities 构造函数?
- asp.net - 调用 GenerateChangePhoneNumberTokenAsync() 后身份电子邮件验证不起作用
- java - 防病毒软件减慢了基于 tomcat 的应用程序
- c# - 如何使同一个 Prefab 实例的行为与我的游戏中的其他实例不同?