如何在没有硬核索引的情况下删除父数组中子数组的重复项

How to erase duplicates of Child array in Parent array without hardcoring index

我有两个数组作为休闲区,

NSArray *First=@[@"a", @"b", @"c",@"d", @"e", @"f",@"g", @"h", @"i", @"j", @"k"];
NSArray *Second=@[@"a",@"d", @"e",@"g",@"i"];

现在

 NSMutableArray *Result=[[NSMutableArray alloc]init];

当我使用 NSLog 结果数组时,我将输出指定为

[ b C F H j k ]

表示结果数组应该从第一个数组中删除第二个数组中的元素,并且条件是Witout usingremoveObjectAtIndex方法

提前致谢。

for (id object in First)
    if (![Second containsObject:object]) [Result addObject:object];

以下是在不使用 removeObjectAtIndex Method.Try 的情况下根据需要获取输出的代码:

NSArray *First=@[@"a", @"b", @"c",@"d", @"e", @"f",@"g", @"h", @"i", @"j", @"k"];
    NSArray *Second=@[@"a",@"d", @"e",@"g",@"i"];

    NSMutableArray *result=[[NSMutableArray alloc]init];


    for (NSString *tempChar in First) {
        if (![Second containsObject:tempChar]) {

            [result addObject:tempChar];
            NSLog(@"result arr :%@",result);
        }
    }

没有循环你可以用NSSet

存档
NSMutableSet *firstSet1 = [NSMutableSet setWithArray: First];
NSSet *secondSet2 = [NSSet setWithArray: Second];
[firstSet1 minusSet: secondSet2];
NSArray * Result = [firstSet1 allObjects];
// *** Most Efficient way to achieve with just 3 Lines of code ***
// *** `NSMutableSet` will do the job for you. ***
// *** method `minusSet` performs subtraction operation between two given sets. ***
NSMutableSet *first = [[NSMutableSet alloc] initWithArray:@[@"a", @"b", @"c",@"d", @"e", @"f",@"g", @"h", @"i", @"j", @"k"]];
NSMutableSet *second = [[NSMutableSet alloc] initWithArray:@[@"a",@"d", @"e",@"g",@"i"]];
[first minusSet:second];
NSLog(@"%@",first);