如何检查数组值在另一个数组不存在(How to check array value not exis

2019-10-17 19:21发布

我有两个不同的NSMutabelArray ArrOne和ArrTwo。 Letsay ArrOne = A,B,C和d ArrTwo = C,d,X和Y.所以我需要检查是否ArrTwo的值是相同ArrOne和从ArrTwo删除项,如果它不是相同ArrOne。 在这种情况下,我不得不从ArrTwo除去X和Y。 请给我一个想法。

Answer 1:

NSMutableSet *set = [NSMutableSet setWithArray:arrOne];
[set intersectSet:[NSSet setWithAray:arrTwo];
return [set allObjects];


Answer 2:

你可以用indexesOfObjectsPassingTest做到这一点,就像这样:

    NSMutableArray *a = [@[@"A",@"B",@"C",@"D"] mutableCopy];
    NSMutableArray *b = [@[@"C",@"D",@"X",@"Y"] mutableCopy];

    NSIndexSet *indxs = [b indexesOfObjectsPassingTest:^BOOL(NSString *obj, NSUInteger idx, BOOL *stop) {
        return ![a containsObject:obj];
    }];

    [b removeObjectsAtIndexes:indxs];


Answer 3:

我发现了一个解决方案,它的工作原理

for (int i=0; i< arrTwo.count; i++)
{ 
    if(![arrOne containsObject:[arrTwo objectAtIndex:i]])
    {
         //do action
         NSLog(@"do delete %@",[arrTwo objectAtIndex:i]);
     }
}

谢谢!



文章来源: How to check array value not exist in another array