删除 NSDictionaries 中超过 100.000 公里的键和值
Deleting the keys and values in NSDictionaries more than the value 100.000 kilometers
我在使用 NSDictionary 时遇到了问题,我正在添加以千米为单位的值,并将名称作为键,这就是我给出的方式
NSDictionary * dd = [NSDictionary dictionaryWithObjects:locationKMArray forKeys:nameArray];
NSLog(@"%@",dd);
这是输出的样子
name1 = 1.011115;
name2 = 55.14256;
name3 = 150.48752;
name4 = 22.48668;
:
:
现在看起来像这样我只想打印不到 100.000 公里我该怎么做
你可以这样做
NSDictionary* dict = [NSDictionary dictionaryWithObjects:locationKMArray forKeys:nameArray];
NSArray*keys=[dict allKeys];
for (NSString* key in keys) {
int km = [dict objectForKey:key];
if (km > 10000) {
NSLog(@"%d" km);
}
}
我不知道您输入的公里数是使用 "km" 字符串还是仅作为整数或长整数。根据需要进行调整。
此致
您可以按如下方式筛选 dd
:
NSSet *keys = [dd keysOfEntriesPassingTest:^BOOL(NSString *key, NSNumber *obj, BOOL *stop) {
return obj.floatValue < 10000;
}];
NSLog(@"%@", keys);
[keys enumerateObjectsUsingBlock:^(NSString *key, BOOL *stop) {
NSLog(@"%@", dd[key]);
}];
NSMutableDictionary *dic = [@{@"name1":@"1.011115 km",@"name2":@"55.14256 km",@"name3":@"150.48752 km",@"name4":@"22.48668 km"}mutableCopy];
for (NSString* key in dic) {
NSString *value = [dic objectForKey:key];
NSArray *array = [value componentsSeparatedByString:@" "];
double km = [[array objectAtIndex:0] doubleValue];
if (km > 100) {
[dic removeObjectForKey:key];
}
}
NSLog(@"%@",dic);
我在使用 NSDictionary 时遇到了问题,我正在添加以千米为单位的值,并将名称作为键,这就是我给出的方式
NSDictionary * dd = [NSDictionary dictionaryWithObjects:locationKMArray forKeys:nameArray];
NSLog(@"%@",dd);
这是输出的样子
name1 = 1.011115;
name2 = 55.14256;
name3 = 150.48752;
name4 = 22.48668;
:
:
现在看起来像这样我只想打印不到 100.000 公里我该怎么做
你可以这样做
NSDictionary* dict = [NSDictionary dictionaryWithObjects:locationKMArray forKeys:nameArray];
NSArray*keys=[dict allKeys];
for (NSString* key in keys) {
int km = [dict objectForKey:key];
if (km > 10000) {
NSLog(@"%d" km);
}
}
我不知道您输入的公里数是使用 "km" 字符串还是仅作为整数或长整数。根据需要进行调整。
此致
您可以按如下方式筛选 dd
:
NSSet *keys = [dd keysOfEntriesPassingTest:^BOOL(NSString *key, NSNumber *obj, BOOL *stop) {
return obj.floatValue < 10000;
}];
NSLog(@"%@", keys);
[keys enumerateObjectsUsingBlock:^(NSString *key, BOOL *stop) {
NSLog(@"%@", dd[key]);
}];
NSMutableDictionary *dic = [@{@"name1":@"1.011115 km",@"name2":@"55.14256 km",@"name3":@"150.48752 km",@"name4":@"22.48668 km"}mutableCopy];
for (NSString* key in dic) {
NSString *value = [dic objectForKey:key];
NSArray *array = [value componentsSeparatedByString:@" "];
double km = [[array objectAtIndex:0] doubleValue];
if (km > 100) {
[dic removeObjectForKey:key];
}
}
NSLog(@"%@",dic);