如何找到与 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()
并使用 key
和 value
以及 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
是值。
使用 Swift,我正在尝试使用与
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()
并使用 key
和 value
以及 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
是值。