如何获取存在于所有 NSArray 中的对象
How to get the object that existed in all NSArray
我有多个数组,例如:
NSArray *a = @[@"a", @"b", @"c"];
NSArray *b = @[@"d", @"a", @"e"];
NSArray *c = @[@"i", @"f", @"a"];
如你所见,"a"存在于数组a、b、c中。我想在提供的数组中创建一个 return 相同对象的函数。所以,就像这个一样,我想从他们那里得到这个 "a"。如果所有数组都没有相同的对象,则 return nil。例如"f"只存在于c中,所以函数应该return nil.
NSMutableSet *set = [NSMutableSet new];
NSMutableSet *set1 = [NSMutableSet setWithArray:a];
NSMutableSet *set2 = [NSMutableSet setWithArray:b];
NSMutableSet *set3 = [NSMutableSet setWithArray:c];
set = [set1 intersectSet:set2];
set = [set intersectSet:set3];
NSArray *allArray = [set allObjects];
NSMutableSet *intersection = [NSMutableSet setWithArray:a];
[intersection intersectSet:[NSSet setWithArray:b]];
[intersection intersectSet:[NSSet setWithArray:c]];
NSArray *intersecArray = [intersection allObjects];
这项工作!从你的代码中它 return a in result array
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *a = @[@"a", @"b", @"c"];
NSArray *b = @[@"d", @"a", @"e"];
NSArray *c = @[@"i", @"f", @"a"];
NSArray *arraydOfAll=[NSArray arrayWithObjects:a,b,c,nil];
NSArray *commonObjArray=[self intersectArray:arraydOfAll];
}
-(NSArray *)intersectArray:(NSArray *)allArray{
NSMutableSet *set1 = [NSSet setWithArray:[allArray objectAtIndex:0]];
for (NSInteger i=1;i<allArray.count : i++){
[set1 intersectSet:[NSSet setWithArray:[allArray objectAtIndex:i]];
}
return [set1 allObjects]
}
我有多个数组,例如:
NSArray *a = @[@"a", @"b", @"c"];
NSArray *b = @[@"d", @"a", @"e"];
NSArray *c = @[@"i", @"f", @"a"];
如你所见,"a"存在于数组a、b、c中。我想在提供的数组中创建一个 return 相同对象的函数。所以,就像这个一样,我想从他们那里得到这个 "a"。如果所有数组都没有相同的对象,则 return nil。例如"f"只存在于c中,所以函数应该return nil.
NSMutableSet *set = [NSMutableSet new];
NSMutableSet *set1 = [NSMutableSet setWithArray:a];
NSMutableSet *set2 = [NSMutableSet setWithArray:b];
NSMutableSet *set3 = [NSMutableSet setWithArray:c];
set = [set1 intersectSet:set2];
set = [set intersectSet:set3];
NSArray *allArray = [set allObjects];
NSMutableSet *intersection = [NSMutableSet setWithArray:a];
[intersection intersectSet:[NSSet setWithArray:b]];
[intersection intersectSet:[NSSet setWithArray:c]];
NSArray *intersecArray = [intersection allObjects];
这项工作!从你的代码中它 return a in result array
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *a = @[@"a", @"b", @"c"];
NSArray *b = @[@"d", @"a", @"e"];
NSArray *c = @[@"i", @"f", @"a"];
NSArray *arraydOfAll=[NSArray arrayWithObjects:a,b,c,nil];
NSArray *commonObjArray=[self intersectArray:arraydOfAll];
}
-(NSArray *)intersectArray:(NSArray *)allArray{
NSMutableSet *set1 = [NSSet setWithArray:[allArray objectAtIndex:0]];
for (NSInteger i=1;i<allArray.count : i++){
[set1 intersectSet:[NSSet setWithArray:[allArray objectAtIndex:i]];
}
return [set1 allObjects]
}