iOS 開發(fā) 根據數組里面對象的某個屬性進行分組

這次開發(fā)中,有這么一個問題,后臺返回的數據并沒有做處理,需要移動端對數組里面的對象按照ID來進行分組,通俗的講就是要把ID一樣的對象放在一個數組里面.分離開來.

大致講講實現(xiàn)的思路: ? 數組里面很多的對象的ID都是一樣的,首先我們需要把數組里面進行去重處理,也就是說把ID不一樣的元素取出一個裝到一個數組里面,作為后面區(qū)分開來的一句.然后把原數組和去重數組進行雙重遍歷.便可把ID相同的放到一個數組. 可直接拷貝下面代碼 ? 程序實現(xiàn)如下:

//課程? 文件

//將ID一樣的分離出來

NSMutableArray *LessonArr=[NSMutableArray array];

[dataArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

NSDictionary *currentDict=obj;

NSString *LessonID=[currentDict objectForKey:@"LessonID"];//根據課程的ID進行區(qū)分

[LessonArr addObject:LessonID];

}];

//使用asset把LessonArr的對象去重

NSSet *set = [NSSet setWithArray:LessonArr];

NSArray *userArray = [set allObjects];

NSSortDescriptor *sd1 = [NSSortDescriptor sortDescriptorWithKey:nil ascending:NO];//yes升序排列,no,降序排列

//按ID降序排列的數組

NSArray *myary = [userArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd1, nil]];

//此時得到的myary就是按照ID ? 降序排列拍好的數組

NSMutableArray *? _titleArray=[NSMutableArray array];

//遍歷myary把_titleArray按照myary里的時間分成幾個組每個組都是空的數組

[myary enumerateObjectsUsingBlock:^(id? _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

NSMutableArray *arr=[NSMutableArray array];

[_titleArray addObject:arr];

}];

//遍歷_dataArray取其中每個數據的ID看看與myary里的那個ID匹配就把這個數據裝到_titleArray 對應的組中

[dataArray enumerateObjectsUsingBlock:^(id? _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

NSDictionary *currentDict=obj;//取出對象

NSString *LessonID=[currentDict objectForKey:@"LessonID"];

for (NSString *str in myary)

{

if([str integerValue] ==[LessonID integerValue])//檢測ID是否是一樣的

{

NSMutableArray *arr=[_titleArray objectAtIndex:[myary indexOfObject:str]];

[arr addObject:currentDict];//是的話就添加到數組里面

}

}

}];

NSLog(@"當前的數組是%@",_titleArray);

承接APP,小程序,公眾號開發(fā). 性價比高.+V信:17723566468 ?有單子也可找我一起做哦

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容