NSArray 分组归类
2016-03-31 12:36
211 查看
NSArray 分组归类
使用场景:
根据NSArray中NSDictionary的一个键值,将NSArray重新分组,例如:后台返回一个json数据
( { index = 4; name = MyProduct1; }, { index = 10; name = MyProduct2; }, { index = 18; name = MyProduct3; }, { index = 4; name = MyProduct8; }, { index = 18; name = MyProduct6; } )
现在要将index相同的数据放在一类中
实现代码
// 测试array NSArray *testArray = @[ @{ @"name": @"MyProduct1", @"index": @4 }, @{ @"name": @"MyProduct2", @"index": @10 }, @{ @"name": @"MyProduct3", @"index": @18 }, @{ @"name": @"MyProduct8", @"index": @4 }, @{ @"name": @"MyProduct6", @"index": @18 } ]; // 获取array中所有index值 NSArray *indexArray = [testArray valueForKey:@"index"]; // 将array装换成NSSet类型 NSSet *indexSet = [NSSet setWithArray:indexArray]; // 新建array,用来存放分组后的array NSMutableArray *resultArray = [NSMutableArray array]; // NSSet去重并遍历 [[indexSet allObjects] enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { // 根据NSPredicate获取array NSPredicate *predicate = [NSPredicate predicateWithFormat:@"index == %@",obj]; NSArray *indexArray = [testArray filteredArrayUsingPredicate:predicate]; // 将查询结果加入到resultArray中 [resultArray addObject:indexArray]; }];
最终结果
( ( { index = 18; name = MyProduct3; }, { index = 18; name = MyProduct6; } ), ( { index = 10; name = MyProduct2; } ), ( { index = 4; name = MyProduct1; }, { index = 4; name = MyProduct8; } ) )
相关文章推荐
- array 排序
- NSData和NSMutableData
- OC学习之--字符串类&数组类&值对象
- NSArray的排序和乱序
- IOS开发-Foundation笔记
- 字面量语法的好处
- Objective-C字符串与数组
- Swift入门 05数组
- NSString/NSArray/NSDictionary/NSSet方法的总结
- NSArray / NSDictionary 的基本介绍和使用
- Object-c之不可变数组
- ios 打印出所有的字体
- 【学习中的分享】 iOS利用UILabel和UIButton制作一个简单的计算器
- NSArray 演示(无注释)
- NSString NSArray的用法
- 渣蜀黍 - iOS 个人笔记(一)_数据处理
- 黑马程序员-ios学习笔记 Foundation 中的 NSArray
- UITableView的Cell排序
- Foundation-NSArray
- Fundation框架(Er)--数组对象常用的处理方法