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

问题描述:根据地图的层级(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:参照层级,根据这个层级,找到数组中最接近这个数的值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容