2017-03-01 1 views
0

내가이 개 변경 가능한 배열이 있습니다변경 가능한 배열이 다른 배열에 배열을 병합

NSMutableArray하는 array1을; [1,2,3,4,5를 포함]

NSMutableArray배열 2; [함유 9,8,7]

I는 3과 4 사이 배열 1배열 2 값을 삽입 할 때문에 결과가 될 수있다 :

array1 = [1,2,3,9,8,7,4,5] 

는 다시 I로부터 배열 2 값을 제거 할 array1이므로 결과는 다음과 같을 수 있습니다.

array1 = [1,2,3,4,5] 

달성하기위한 최선의 방법을 제안 해주십시오.

아래의 링크

도움이되지 않습니다 당신은 2 부분으로 첫 번째 배열을 분할하고 예상 결과를 얻기를위한 최종 배열에 대한 모든 3 배열을 병합 할 수 있습니다 귀하의 요구 사항을 바탕으로 Copy object at specific index of mutable array to the end of another array

+0

의 수정을 시도 할 수 있습니다? – CodeChanger

+0

아니요, 어떤 인덱스에서든지 array2를 삽입 할 수 있지만 한 번에 네, 인덱스 값이 주어집니다. – Ren

+0

@Ren 수정 한 오브젝트 3 다음에 오브젝트를 추가해야합니까? 항상 객체 3과 4 사이를 의미합니다. –

답변

3

. 이 뜻이 당신을 도와줍니다

NSMutableArray *mutArray1 = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil]; 
    NSMutableArray *mutArray2 = [[NSMutableArray alloc] initWithObjects:@"9",@"8",@"7", nil]; 

    //You cna change index based on your requirement. 
    int indexToSpit = 3; 

    //Split your first array into 2 part. 
    NSArray *arayFirstPart = [mutArray1 subarrayWithRange:NSMakeRange(0, indexToSpit)]; 
    NSArray *araySecondPart = [mutArray1 subarrayWithRange:NSMakeRange(indexToSpit, mutArray1.count-indexToSpit)]; 

    //Merge all 3 array into single array 
    NSMutableArray *finalArray = [[NSMutableArray alloc] initWithArray:arayFirstPart]; 
    [finalArray addObjectsFromArray:mutArray2]; 
    [finalArray addObjectsFromArray:araySecondPart]; 

    NSLog(@"Combine Array : %@",finalArray); 

    //For remove 
    [finalArray removeObjectsInArray:mutArray2]; 

    NSLog(@"Split Array : %@",finalArray); 

희망 :

이 코드를 확인하시기 바랍니다.

+0

감사합니다. 그것을 확인하십시오. – Ren

+0

당신은 나의 4 시간을 구했다. .. 고맙다 alot! – Ren

0
var array1 = [1,2,3,4,5] 
var array2 = [9,8,7] 

제거 인덱스 3 사용

array1.insertContentsOf(array2, at: 3) 
print(array1) 

에서 배열 2를 삽입하면

array1 = Array(Set(array1).subtract(array2))

우리가 변환 될 때 정렬되지 않은 배열이되는 사용 중 뺄셈을위한 배열.

또는 당신은 당신이하는 array1에 4 인덱스 배열 2 삽입 할

var array3 = [1,2,3,4,5] 
     //assuming array1 as [1,2,3,9,8,7,4,5] 
    let array4 = array1.filter({array3.contains($0)}) 
    print(array4) //will give you desired ordered array 
+0

감사합니다 jagdeep,하지만 객관적인 C. 사용하고 있습니다. – Ren

관련 문제