使用Swift,我尝试使用与this answer相同的复杂过滤器或排序方式,但使用的是字典,它的值与数组相对。我的整数值也可以是任何整数值-无限制。给定一个不在数组中的某个整数值(例如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
如何为字典值完成类似的操作?
答案 0 :(得分:0)
基本上是一样的。只需放下enumerated()
并将key
和value
与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
是值。