我有一个包含多个字典的数组,其中有一个存储小时和分钟的字段,例如“14:22”。
如何按时间过滤数组?例如,我希望该字段具有时间 > 01:00 和时间 < 18:00 的所有字典
我有一个包含多个字典的数组,其中有一个存储小时和分钟的字段,例如“14:22”。
如何按时间过滤数组?例如,我希望该字段具有时间 > 01:00 和时间 < 18:00 的所有字典
像这样的东西会做你正在寻找的东西:
NSArray *data = @[@{@"time": @"10:05"},@{@"time": @"1:06"},@{@"time": @"18:24"},@{@"time": @"7:29"},@{@"time": @"11:55"}];
NSArray *filteredData = [data filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSDictionary *dict, NSDictionary *bindings) {
NSArray *components = [dict[@"time"] componentsSeparatedByString:@":"];
NSAssert(components.count >= 2, @"Invalid time format.");
NSInteger h = [components[0] integerValue];
NSInteger m = [components[1] integerValue];
return h >= 1 && h < 18;
}]];
您可以将值存储到数组中并使用它
[datesArray sortUsingSelector:@selector(compare:)];
它会给你安排时间