如何找到与x [Swift]

时间:2019-05-15 00:07:27

标签: swift dictionary enumeration

使用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

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

1 个答案:

答案 0 :(得分:0)

基本上是一样的。只需放下enumerated()并将keyvalueclosest一起使用。

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是值。