根据一个数值寻找数组中最接近这个数值的对象

问题描述:根据地图的层级(mapView.zoomLevel),在数组内寻找到最接近这个层级的数值

- (NSInteger)getMinValueShowLevel:(NSArray *)showLevels mapZoomLevel:(CGFloat)mapZoomLevel{
    NSInteger suitValue = (int)mapZoomLevel;
    NSInteger diffLevel = 9999;
    for (NSNumber *showLevel in showLevels) {
        NSInteger diffLevelTmp = fabs(mapZoomLevel - [showLevel intValue]);
        if (diffLevelTmp < diffLevel) {
            diffLevel = diffLevelTmp;
            suitValue = [showLevel intValue];
        }
    }
    return suitValue;
}

注:代码中
showLevels:存有数值对象,如: showLevels = @[@(12), @(7), @(9)];
suitValue:找到的最合适的值
diffLevel:层级差
mapZoomLevel:参照层级,根据这个层级,找到数组中最接近这个数的值

你可能感兴趣的:(根据一个数值寻找数组中最接近这个数值的对象)