Return 最接近 0 的值,包括负数
Return value closest to 0 including negative numbers
我有一个 NSDictionary
,我想 return 对应的最接近零的键(包括负数的键):
NSDictionary *dict = @{
@"David" : @-89,
@"Bobby" : @61,
@"Nancy" : @-8,
@"Sarah" : @360,
@"Steve" : @203
};
所以在这种情况下 Nancy
最接近...
我怎样才能做到这一点?我搜索了一下,但一无所获。
只需迭代这些值并跟踪哪个值最接近零。使用 abs
处理绝对值。
免责声明 - 以下代码未经测试 - 可能是拼写错误。它还假定整数。根据需要进行调整以支持浮点值。
NSDictionary *dict = ... // your dictionary
NSInteger closestValue = NSIntegerMax;
NSString *closestKey = nil;
for (NSString *key in [dict allKeys]) {
NSNumber *value = dict[key];
NSInteger number = (NSInteger)labs((long)[value integerValue]);
if (number < closestValue) {
closestValue = number;
closestKey = key;
}
}
NSLog(@"Closest key = %@", closestKey);
这是一个简单的最大最小问题,
NSString *curMinKey = [dict.allKeys firstObject];
NSInteger curMinVal = ABS([[dict objectForKey:curMinKey] integerValue]);
for(id key in dict) {
if(curMinVal > ABS([[dict objectForKey:key] integerValue])) {
curMinKey = key;
curMinVal = ABS([[dict objectForKey:key] integerValue]);
}
}
/// curMinKey is what you are looking for
我有一个 NSDictionary
,我想 return 对应的最接近零的键(包括负数的键):
NSDictionary *dict = @{
@"David" : @-89,
@"Bobby" : @61,
@"Nancy" : @-8,
@"Sarah" : @360,
@"Steve" : @203
};
所以在这种情况下 Nancy
最接近...
我怎样才能做到这一点?我搜索了一下,但一无所获。
只需迭代这些值并跟踪哪个值最接近零。使用 abs
处理绝对值。
免责声明 - 以下代码未经测试 - 可能是拼写错误。它还假定整数。根据需要进行调整以支持浮点值。
NSDictionary *dict = ... // your dictionary
NSInteger closestValue = NSIntegerMax;
NSString *closestKey = nil;
for (NSString *key in [dict allKeys]) {
NSNumber *value = dict[key];
NSInteger number = (NSInteger)labs((long)[value integerValue]);
if (number < closestValue) {
closestValue = number;
closestKey = key;
}
}
NSLog(@"Closest key = %@", closestKey);
这是一个简单的最大最小问题,
NSString *curMinKey = [dict.allKeys firstObject];
NSInteger curMinVal = ABS([[dict objectForKey:curMinKey] integerValue]);
for(id key in dict) {
if(curMinVal > ABS([[dict objectForKey:key] integerValue])) {
curMinKey = key;
curMinVal = ABS([[dict objectForKey:key] integerValue]);
}
}
/// curMinKey is what you are looking for