假设我有一个数组
var values:[CGFloat] = [-12.0, 450, 300]
我需要找出这些数字中哪个最接近给定值,比如
var givenValue:CGFloat = 64
有没有一种有效的方法可以找出数组中哪个对象最接近64?
我知道你可以这样做:
if abs(values[0] - 64) < abs(values[1] - 64) && abs(values[0] - 64) < abs(values[2] - 64) {
println("values[0] is the closest to 64)
}
但这将导致多个 if 语句并且看起来效率低下。
有谁知道更好的方法吗?在这个例子中,我需要数组中的值以及它在数组中的哪个 objectIndex。
请您参考如下方法:
将 minimumDifference 保存为变量。
然后迭代数组。每次比较数组中值的差异与最小差异。
如果新的差异较小,则换出最小差异。
在数组的末尾,您将得到最小的差异。
这与查找最大值、最小值等相同...
