2013-05-29 1 views
0

2 개의 NSMutableArray 값을 비교하고 어떤 indexPath가 다른지 확인하고이 인덱스 수를 하나의 배열에 저장하고 싶습니다.2 NSMutableArray를 비교하고 다른 수의 값을 얻는 방법

NSMutableArray *a = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6", nil]; 
NSMutableArray *b = [[NSMutableArray alloc]initWithObjects:@"11",@"2",@"5",@"3",@"53",@"6", nil]; 

내가 (값으로 값을 비교) 색인이 두 NSMutableArray의 지수를 비교하고 다른 이들 NSMutableArrays에 해당하는 배열의 인덱스 말해하려는 : 예를 들어 나는이있는 NSMutableArray 있습니다. 예를 들어 위에있는 두 개의 NSMutableArray에서이 인덱스는 다르고 (0,2,3,4)이 값을 특정 Array에 저장하려고합니다.

답변

0
NSMutableArray* differentIndex; 
differentIndex = [[NSMutableArray alloc] init]; 
for(int i = 0 ; i < [a count]; i++) { 
    if(i < [b count]){ 
     if(![b[i] isEqual:a[i]]){ 
      [differentIndex addObject:[NSNumber numberWithInt:i]]; 
     } 
    } else { 
     [differentIndex addObject:[NSNumber numberWithInt:i]]; 
    } 
} 

이제 differentIndex에는 배열의 다른 모든 색인이 포함됩니다. :)

+1

감사합니다. 친애하는 친구 – emma

+0

isEqual 앞에 부정이 추가되었습니다. 그러나 두 조건은 쉽게 하나로 병합 될 수 있으며 중복 된 코드는 제거 될 수 있습니다. – Sulthan

0
NSMutableArray *a = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6", nil]; 
NSMutableArray *b = [[NSMutableArray alloc]initWithObjects:@"11",@"2",@"5",@"3",@"53",@"6", nil]; 
NSMutableArray *new = [[NSMutableArray alloc]init]; 
for(int i =0;i<[b count]<=[a count]?[b count]:[a count];i++) 
{ 
    NSString *_keyA = [a objectAtIndex:i]; 
    NSString *_keyB = [b objectAtIndex:i]; 
    if ([_keyA isEqualToString:_keyB]) 
     continue; 
    [new addObject:[NSString stringWithFormat:@"%d",i]]; 
} 
관련 문제