简介
NSArray+BlocksKit是针对数组便捷操作的类别封装,主要是为了更加快速的遍历数组、获取满足条件的元素、组成新数组等系列操作,现目前BlocksKit已停更。
基础部分:
1、串行遍历容器中所有元素
- (void)bk_each:(void (^)(id obj))block;
2、并发遍历容器中所有元素(不要求容器中元素顺次遍历的时候可以使用此种遍历方式来提高遍历速度)
- (void)bk_apply:(void (^)(id obj))block;
3、返回第一个符合block条件(让block返回YES)的对象
- (id)bk_match:(BOOL (^)(id obj))block;
4、返回所有符合block条件(让block返回YES)的对象
- (NSArray *)bk_select:(BOOL (^)(id obj))block;
5、返回所有不符合block条件(让block返回YES)的对象
- (NSArray *)bk_reject:(BOOL (^)(id obj))block;
eg:
6、返回对象的block映射数组
- (NSArray *)bk_map:(id (^)(id obj))block;
eg:
7、查看容器是否有符合block条件的对象, 判断是否容器中至少有一个元素符合block条件
- (BOOL)bk_any:(BOOL (^)(id obj))block;
8、判断是否容器中所有元素都不符合block条件
- (BOOL)bk_none:(BOOL (^)(id obj))block;
9、判断是否容器中所有元素都符合block条件
- (BOOL)bk_all:(BOOL (^)(id obj))block;
其他部分:
1、元素叠加减,返回最终结果
- (id)bk_reduce:(id)initial withBlock:(id (^)(id sum, id obj))block;
eg:2、对比两数组元素是否相同(不局限于类型)
- (BOOL)bk_corresponds:(NSArray *)list withBlock:(BOOL (^)(id obj1, id obj2))block;
eg:3、元素叠加减,指定返回位数 参数为初始值
- (CGFloat)bk_reduceFloat:(CGFloat)inital withBlock:(CGFloat(^)(CGFloat result, id obj))block;
eg:4、元素叠加减,指定返回位数 参数为初始值
- (NSInteger)bk_reduceInteger:(NSInteger)initial withBlock:(NSInteger(^)(NSInteger result, id obj))block;
后期持续更新方法...