假设我有一个数组
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
保存为变量。
然后迭代数组。每次将数组中的值的差异与最小差异进行比较。
如果新的差异较小,则交换最小差异。
在数组的末尾,您将得到最小的差异。
这与查找最大值、最小值等相同...
关于Swift:检查 NSArray 中的哪个值最接近另一个给定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28868277/