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

2017-09-07  本文已影响0人  小熊翻译App

问题描述:根据地图的层级(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:参照层级,根据这个层级,找到数组中最接近这个数的值
上一篇下一篇

猜你喜欢

热点阅读