如何找到与 x [Swift] 相差最小的字典值

How to find the dictionary value with the smallest difference from x [Swift]

使用 Swift,我正在尝试使用与 相同的复杂过滤器或排序,但不是针对 字典 及其值而不是数组。我的整数值也可以是任何整数值——没有限制。给定一个不在数组中的特定整数值(比如 X),我想找到给出其自身与 X 之间的最小差异的数组元素:

let playerGuesses = ["Mike": 432, "Chrissy": 164]
let x = 222

数组版给出的答案如下:

let closest = numbers.enumerated().min( by: { abs([=12=].1 - x) < abs(.1 - x) } )!
print(closest.element) // 7
print(closest.offset) // 2

如何为字典值完成类似的操作?

基本相同。只需删除 enumerated() 并使用 keyvalue 以及 closest

let playerGuesses = ["Mike": 432, "Chrissy": 164]
let x = 222
let closest = playerGuesses.min { abs([=10=].1 - x) < abs(.1 - x) }
print(closest?.key, closest?.value)

min 闭包中,$x.0 是键,$x.1 是值。