提取出有相同元素的數組再存入一個數組中

{
        NSMutableArray *dateMutablearray = [@[] mutableCopy];
        NSArray *array1 = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
                            @"2014-04-01",@"2014-04-02",@"2014-04-03",
                            @"2014-04-01",@"2014-04-02",@"2014-04-03",
                            @"2014-04-01",@"2014-04-02",@"2014-04-03",
                            @"2014-04-01",@"2014-04-02",@"2014-04-03",
                            @"2014-04-01",@"2014-04-02",@"2014-04-03",
                            @"2014-04-04",@"2014-04-06",@"2014-04-08",
                            @"2014-04-05",@"2014-04-07",@"2014-04-09",];
        
        NSSet *set = [NSSet setWithArray:array1];
        BOOL needSort = YES; // 是否需要排序
        NSArray *sortSetArray;
        if (needSort) {
            NSArray *sortDesc = @[[[NSSortDescriptor alloc] initWithKey:nil ascending:YES]];
            sortSetArray = [set sortedArrayUsingDescriptors:sortDesc];
        } else {
            sortSetArray = [set allObjects];
        }
        //    NSLog(@"set%@\nsort set%@", set, sortSetArray);
        for (NSString *str in sortSetArray) {
            NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES[c] %@", str];
            NSArray *tmp = [array1 filteredArrayUsingPredicate:predicate];
            [dateMutablearray addObject:tmp];
        }
        NSLog(@"dateMutablearray=======%@", dateMutablearray);
    }

今天在逛論壇的時候,發現的一個關於處理數組的帖子。

樓主的訴求是“在返回的數組中,提取出相同的日期,存入一個數組中,再把提取出有相同元素的數組再存入一個數組中。”

上邊貼出的代碼是網友給出的解決方案。

主要的技術在於數組方法的運用。

NSArray提供瞭如下方法使用謂詞來過濾集合 
- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate:使用指定的謂詞過濾NSArray集合,返回符合條件的元素組成的新集合 
NSMutableArray提供瞭如下方法使用謂詞來過濾集合
 - (void)filterUsingPredicate:(NSPredicate *)predicate:使用指定的謂詞過濾NSMutableArray,剔除集合中不符合條件的元素

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章