以升序对数组进行排序,并删除Objective-C中的重复值

Itaws

我有一个水平和垂直滚动表。我从Web服务(json)获取标题和第一列的数据。我想按升序对数据进行排序,并从标题和第一列中删除重复的数据。为了删除重复的值,我使用了以下代码:

-(void) requestFinished: (ASIHTTPRequest *) request
{
    NSString *theJSON = [request responseString];

    SBJsonParser *parser = [[SBJsonParser alloc] init];

    NSMutableArray *jsonDictionary = [parser objectWithString:theJSON error:nil];

    headData = [[NSMutableArray alloc] init];
    NSMutableArray *head = [[NSMutableArray alloc] init];

    leftTableData = [[NSMutableArray alloc] init];
    NSMutableArray *left = [[NSMutableArray alloc] init];

    rightTableData = [[NSMutableArray alloc]init];

    for (NSMutableArray *dictionary in jsonDictionary)
    {
        Model *model = [[Model alloc]init];

        model.cid = [[dictionary valueForKey:@"cid"]intValue];
        model.iid = [[dictionary valueForKey:@"iid"]intValue];
        model.yr = [[dictionary valueForKey:@"yr"]intValue];
        model.val = [dictionary valueForKey:@"val"];

        [mainTableData addObject:model];

        [head addObject:[NSString stringWithFormat:@"%ld", model.yr]];
        [left addObject:[NSString stringWithFormat:@"%ld", model.iid]];
    }
    NSOrderedSet *orderedSet = [NSOrderedSet orderedSetWithArray:head];
    headData = [[orderedSet array] mutableCopy];

//    NSSet *set = [NSSet setWithArray:left];
//    NSArray *array2 = [set allObjects];
//    NSLog(@"%@", array2);

    NSOrderedSet *orderedSet1 = [NSOrderedSet orderedSetWithArray:left];
    NSMutableArray *arrLeft = [[orderedSet1 array] mutableCopy];

    //remove duplicate enteries from header array
    [leftTableData addObject:arrLeft];


    NSMutableArray *right = [[NSMutableArray alloc]init];
    for (int i = 0; i < arrLeft.count; i++)
    {
        NSMutableArray *array = [[NSMutableArray alloc] init];
        for (int j = 0; j < headData.count; j++)
        {
            /* NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.iid == %ld", [[arrLeft objectAtIndex:i] intValue]];
             NSArray *filteredArray = [mainTableData filteredArrayUsingPredicate:predicate];*/
            NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.iid == %ld AND SELF.yr == %ld", [[arrLeft objectAtIndex:i] intValue], [[headData objectAtIndex:j] intValue]];
            NSArray *filteredArray = [mainTableData filteredArrayUsingPredicate:predicate];

            if([filteredArray count]>0)
            {
                Model *model = [filteredArray objectAtIndex:0];
                [array addObject:model.val];
            }
        }
        [right addObject:array];
    }
    [rightTableData addObject:right];
}

如何将数组按升序排序?

请帮忙。

Itaws

这是我按照升序对标题数据进行排序并从标题和最左边的列中删除重复项的工作。希望这对别人有帮助

NSOrderedSet *orderedSet3 = [NSOrderedSet orderedSetWithArray:head3];
headData3 = [[orderedSet3 array] mutableCopy];
[headData3 sortUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2)
{
    return [str1 compare:str2 options:(NSNumericSearch)];
}];

NSOrderedSet *orderedSet4 = [NSOrderedSet orderedSetWithArray:left3];
NSMutableArray *arrLeft3 = [[orderedSet4 array] mutableCopy];

[leftTableData3 addObject:arrLeft3];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用C中的指针按升序对数组进行排序

来自分类Dev

根据值的升序或降序对数组进行排序

来自分类Dev

如何从PHP中的Key按升序对数组进行排序?

来自分类Dev

从类数组中删除重复项并按日期对数组进行排序

来自分类Dev

在C中对数组中的值进行排序

来自分类Dev

在数组中以升序对名称进行排序

来自分类Dev

对数组C中的元素进行排序

来自分类Dev

对数组的重复值进行排序并使其成为键

来自分类Dev

以升序对数组进行排序

来自分类Dev

对数组进行排序并找到重复的数字

来自分类Dev

在Python中对数组数组进行排序

来自分类Dev

根据给定的用户 ID 对数组进行排序,但不从数组中删除原始数据

来自分类Dev

PHP根据值对数组进行排序

来自分类Dev

PHP根据值对数组进行排序

来自分类Dev

根据值对数组进行排序

来自分类Dev

在输入值的同时对数组进行排序

来自分类Dev

基于多个值对数组进行排序

来自分类Dev

使用 Powershell 对数组值进行排序

来自分类Dev

按字母值对数组进行排序

来自分类Dev

按值对数组中的数组进行排序

来自分类Dev

在Perl中对数组数组的哈希值进行排序

来自分类Dev

按子数组中的值对数组进行排序

来自分类Dev

按子数组中的值对数组进行排序

来自分类Dev

在Perl中对数组数组的哈希值进行排序

来自分类Dev

在Erlang中对数组进行排序

来自分类Dev

在Julia中对数组进行排序

来自分类Dev

在Matlab中对数组的结构进行排序

来自分类Dev

在源文件中对数组进行排序

来自分类Dev

对数组中的文档进行排序