将数组中的数据快速分组

2018-07-20  本文已影响114人  reviewThis

需求:一套试卷中有大量不同类型的题目,将题目快速分类处理。

一、初始化了一波假数据

- (void)setupQuestions {     for (int i = 0; i < 10; i++) {        

HXQuestionModel *qModel = [[HXQuestionModel alloc]init];        

if (i%2 == 0) {            

qModel.qType = @"X型题";        

}else if (i%3 == 0) {          

  qModel.qType = @"Y型题";      

  }else if (i%5 == 0) {          

  qModel.qType = @"Z型题";      

  }else {            

qModel.qType = @"默认题型";      

  }      

  [_questionsArray addObject:qModel];  

  } }

解决方式:

1.首先获取试卷中题目的类型

获取题目类型

 NSArray *indexArray = [_questionsArray valueForKey:@"qType"];  

  // 将array装换成NSSet类型    除重

NSSet *indexSet = [NSSet setWithArray:indexArray];         

NSLog(@"%@",indexSet);

2.根据所选条件筛选数据

NSMutableArray *filerResultArr = [NSMutableArray array];   

[indexSet enumerateObjectsUsingBlock:^(id  _Nonnull obj, BOOL * _Nonnull stop) {        NSLog(@"%@",obj);     

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"qType == %@",obj];  NSArray *subArr = [_questionsArray filteredArrayUsingPredicate:predicate];        [filerResultArr addObject:subArr]; 

}];         

NSLog(@"%@",filerResultArr);

上一篇下一篇

猜你喜欢

热点阅读