iOS 处理数组中相同元素

2019-11-01  本文已影响0人  邓布利多教授

如题:从数组中把相同元素放到一个数组中,返回一个二维数组

                NSDictionary *data = (NSDictionary *)response[@"data"];
                NSMutableArray *mutArray = [NSMutableArray new];
                for (NSDictionary *dict in data[@"products"]) {
                    BulkCarModel *model = [[BulkCarModel alloc]initWithDictionary:dict];
                    [mutArray addObject:model];
                }

                //创建一个存储处理结果的可变数组
                NSMutableArray *copyArr = [NSMutableArray new];
                //遍历源数组
                for (int i = 0; i < mutArray.count; i ++) {
                    
                    //创建一个存储相同元素的可变数组
                    NSMutableArray *tempArray = [NSMutableArray new];
                    //把数组中元素取出
                    BulkCarModel *iModel = mutArray[i];
                    //把第一个取出来的元素存储数组
                    [tempArray addObject:iModel];
                    
                    //从第一个取出来的元素的i值的下一个元素开始查找,查找和第一个元素相同的元素
                    for (int j = i + 1; j < mutArray.count; j ++) {
                        
                        //取出i值加1的元素
                        BulkCarModel *jModel = mutArray[j];
                        //比较i值和i值加1的两个元素是否相同
                        if ([iModel.shopName isEqualToString:jModel.shopName]) {
                            //如果两个元素相同,则把后一个元素添加到存储第一个元素的数组中
                            [tempArray addObject:jModel];
                            //把源数组中出现重复元素位置的元素移除
                            [mutArray removeObjectAtIndex:j];
                            //出现重复元素的时候,添加完成j值减1,继续查找
                            j -= 1;
                        }
                        
                    }
                    //查找完成一个元素后,把数组添加到处理结果数组,继续查找
                    [copyArr addObject:tempArray];
                    
                }
                NSLog(@"copyArr = %@",copyArr);
上一篇 下一篇

猜你喜欢

热点阅读