获取数组iOS中最新的字典

时间:2014-07-28 09:11:10

标签: ios objective-c dictionary nsarray

我的数组包含许多字典,如下所示:

Array =  {
        buyerID = 00000000000w;
        time = 1404919942804;
        id = 0000000000Aa;
    },
        {
        buyerID = 00000000000Z;
        time = 1404670971396;
        id = 0000000000Aa;
    },
        {
        buyerID = 00000000000Z;
        time = 1406531476764;
        id = 0000000000Ab;
    },
        {
        buyerID = 00000000000w;
        time = 1406531476213;
        id = 0000000000Aa;
    },

预期结果是:

LastArray =  {
        buyerID = 00000000000w;
        time = 1404919942804;
        id = 0000000000Aa;
    },
        {
        buyerID = 00000000000Z;
        time = 1404670971396;
        id = 0000000000Aa;
    },
        {
        buyerID = 00000000000Z;
        time = 1406531476764;
        id = 0000000000Ab;
    },

这意味着我想删除最后一个对象,因为BuyerID和ID与第一个项目相同。我怎样才能做到这一点?请给我一些建议。非常感谢。

3 个答案:

答案 0 :(得分:2)

如果你想删除重复项,试试这个 -

NSMutableArray *objectsToRemove =   [[NSMutableArray alloc]init];
for (int i=0; i<mutableArray.count; i++) {
    for (int j=i+1; j<mutableArray.count; j++) {
        if ([[[mutableArray objectAtIndex:i] valueForKey:@"buyerID"] isEqualToString:[[mutableArray objectAtIndex:j]valueForKey:@"buyerID"]] && [[[mutableArray objectAtIndex:i] valueForKey:@"id"] isEqualToString:[[mutableArray objectAtIndex:j]valueForKey:@"id"]]) {
            [objectsToRemove addObject:[mutableArray objectAtIndex:j]];
        }
    }
}

[mutableArray removeObjectsInArray:objectsToRemove];
NSLog(@"AFTER :: %@",mutableArray);

用数组替换mutableArray。

答案 1 :(得分:0)

如果数组(数据)已修复,那么只需removeAtObject即可,[myArray removeObjectAtIndex:myArray.count-1];[myArray removeLastObject];

如果您想删除重复项,请Check this

答案 2 :(得分:0)

&#39; containsObject&#39;是你的朋友。它可以检查数组中的复杂对象类型。因此,作为将对象添加到可变数组的代码的一部分,您可以添加一个过滤器来停止重复...

NSMutableArray *cleanArray = [[NSMutableArray alloc] init];
if (![cleanArray containsObject:dictionaryToAdd]) {
   [cleanArray addObject:dictionaryToAdd];
}

因此,请集中在这些对象填充数组的位置,并添加上面的过滤器代码以确保只添加唯一对象。 NSSet也可能有帮助。