2012-08-01 182 views
0

我有两个数组:比较两个数组

array1=[1,2,3,4,5,6,7,8,9,10,11] 
array2=[1,2] 

我想在“数组2”来比较天气因素存在于“阵列1”与否。 如果是,那么我需要运行一个函数,否则退出。 如何做到这一点?

回答

1

约列举了数组1是什么?

沿着我得到了共同的项目像这样的

NSArray *array1 = ...; 
NSArray *array2 = ...; 

[array1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    if ([array2 containsObject: obj]) { 
     // Run the function you wanted to 
    } 
}]; 
+0

希望我可以提供更多+1的内存管理:) – ilhnctn 2012-08-01 07:29:39

+1

谢谢,这是枚举的好处,如果意图是只运行一些包含的项目上的代码不需要创建新的对象。如果想法是过滤,那么我会使用NSMutableSet方法。 – 2012-08-01 07:44:50

+0

当我看到我决定使用NSMutableSet来回答的问题时,但在阅读您的文章后,我会发现这是最好的 – ilhnctn 2012-08-01 07:50:47

1

一个简单的逻辑的方法来做到这将是一个for循环:

for(int a = 0; a < array1.count; a++) { 
    for(int b = 0; b < array2.count; b++) { 
     if([[array1 objectAtIndex:a] isEqualToString:[array2 objectAtIndex:b]]) { 
      //do something here 
     } 
    } 
} 
7

东西线: -

NSMutableSet *idSet=[NSMutableSet setWithArray:Array1]; 
[idSet intersectSet:[NSSet setWithArray:Array2]]; 
NSArray *Common_array=[idSet allObjects]; 

共同数组你可以得到存在两个数组中是同一个对象0对象在 Common_array比在两个数组中都没有相同的对象。

+0

简单且紧凑的代码。 – kushalrshah 2012-08-01 07:50:39

+0

它的甜美和简单 – Wolverine 2012-08-01 11:24:02