將數組中的數據快速分組

需求:一套試卷中有大量不同類型的題目,將題目快速分類處理。

一、初始化了一波假數據

- (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);

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容