iOS 開發(fā) 根據(jù)數(shù)組里面對(duì)象的某個(gè)屬性進(jìn)行分組

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

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

//課程? 文件

//將ID一樣的分離出來

NSMutableArray *LessonArr=[NSMutableArray array];

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

NSDictionary *currentDict=obj;

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

[LessonArr addObject:LessonID];

}];

//使用asset把LessonArr的對(duì)象去重

NSSet *set = [NSSet setWithArray:LessonArr];

NSArray *userArray = [set allObjects];

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

//按ID降序排列的數(shù)組

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

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

NSMutableArray *? _titleArray=[NSMutableArray array];

//遍歷myary把_titleArray按照myary里的時(shí)間分成幾個(gè)組每個(gè)組都是空的數(shù)組

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

NSMutableArray *arr=[NSMutableArray array];

[_titleArray addObject:arr];

}];

//遍歷_dataArray取其中每個(gè)數(shù)據(jù)的ID看看與myary里的那個(gè)ID匹配就把這個(gè)數(shù)據(jù)裝到_titleArray 對(duì)應(yīng)的組中

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

NSDictionary *currentDict=obj;//取出對(duì)象

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

for (NSString *str in myary)

{

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

{

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

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

}

}

}];

NSLog(@"當(dāng)前的數(shù)組是%@",_titleArray);

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

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容