@implementation NSArray (Map)
- (NSArray *)mapUsingBlock:(id (^)(id obj, NSUInteger idx))block {
NSMutableArray *result = [NSMutableArray arrayWithCapacity:[self count]];
[self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[result addObject:block(obj, idx)];
}];
return result;
}
@end
NSArray<NSNumber *> *numbers = @[@1, @2, @3, @4, @5];
numbers = [numbers mapUsingBlock:^id(NSNumber *number, NSUInteger idx) {
return [NSNumber numberWithInt:number.intValue * 3];
}];
//numbers is [ 3, 6, 9, 12, 15 ]