我有兩個數組:比較兩個數組
array1=[1,2,3,4,5,6,7,8,9,10,11]
array2=[1,2]
我想在「數組2」來比較天氣因素存在於「陣列1」與否。 如果是,那麼我需要運行一個函數,否則退出。 如何做到這一點?
我有兩個數組:比較兩個數組
array1=[1,2,3,4,5,6,7,8,9,10,11]
array2=[1,2]
我想在「數組2」來比較天氣因素存在於「陣列1」與否。 如果是,那麼我需要運行一個函數,否則退出。 如何做到這一點?
約列舉了數組1是什麼?
沿着我得到了共同的項目像這樣的
NSArray *array1 = ...;
NSArray *array2 = ...;
[array1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([array2 containsObject: obj]) {
// Run the function you wanted to
}
}];
一個簡單的邏輯的方法來做到這將是一個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
}
}
}
東西線: -
NSMutableSet *idSet=[NSMutableSet setWithArray:Array1];
[idSet intersectSet:[NSSet setWithArray:Array2]];
NSArray *Common_array=[idSet allObjects];
共同數組你可以得到存在兩個數組中是同一個對象0對象在 Common_array比在兩個數組中都沒有相同的對象。
簡單且緊湊的代碼。 – kushalrshah 2012-08-01 07:50:39
它的甜美和簡單 – Wolverine 2012-08-01 11:24:02
希望我可以提供更多+1的內存管理:) – ilhnctn 2012-08-01 07:29:39
謝謝,這是枚舉的好處,如果意圖是隻運行一些包含的項目上的代碼不需要創建新的對象。如果想法是過濾,那麼我會使用NSMutableSet方法。 – 2012-08-01 07:44:50
當我看到我決定使用NSMutableSet來回答的問題時,但在閱讀您的文章後,我會發現這是最好的 – ilhnctn 2012-08-01 07:50:47