kfo*_*rim 2 arrays ios swift swift2 swift3
我很好奇是否有一种方法可以通过现代 api 快速实现最接近的值?
例如:
let x = [1.2, 3.4, 4.5, 6.7, 8.9]
print(x.getClosestValue(3.7) //3.4
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用map和reduce,但仍然无法解决这个问题。出现的问题是我必须迭代整个数组才能检测误报。在某些情况下,您可以拥有多个最接近的值,所以只是想知道如何快速完成此操作?
您可以使用min(by:)它来实现这一点,并且不需要排序数组
let x = [1.2, 3.4, 4.5, 6.7, 8.9]
let target = 3.7
let closestTarget = x.min(by: {abs($0 - target) < abs($1 - target)})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
614 次 |
| 最近记录: |