如何在没有硬核索引的情况下删除父数组中子数组的重复项
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);
我有两个数组作为休闲区,
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);