2012-08-01 2 views
0

비교 :내가 두 배열이 두 배열

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

내가 "array2는"날씨 요소를 비교하려면 "을 배열 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

+1

덕분에 열거 된 항목 덕분에, 포함 된 항목 중 일부에서만 일부 코드를 실행하려는 경우 새로운 개체를 만들 필요가 없습니다. 아이디어가 걸러지면 NSMutableSet 접근 방식을 사용합니다. –

+0

내가 NSMutableSet을 사용하여 대답하기로 결정한 질문을 보았지만 게시글을 읽은 후이 코드는 가장 쉽고 간결한 코드 – ilhnctn

1

루프에 대한 것이 작업을 수행하는 쉬운 논리 방법 :

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

+0

은 달콤하고 단순합니다. – Wolverine