2017-03-01 67 views
0

我有兩個可變數組:可變數組合並數組另一個數組

NSMutableArrayARRAY1; [含有1,2,3,4,5]

NSMutableArrayarray2; [含有9,8,7]

我要插入數組23和4之間ARRAY1,所以結果可能是:

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

再次我想從刪除數組2值array1,結果可能如下:

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

請給我一些最好的方法來實現它。

以下鏈接沒有幫助: Copy object at specific index of mutable array to the end of another array

+0

它要在第4索引中插入數組2成數組1解決? – CodeChanger

+0

不,在任何索引處我都可以插入array2,但是在同一時間,它會被賦予索引值。 – Ren

+0

@人你需要添加對象3修復對象後?意味着始終在對象3和4之間。 –

回答

3

根據您的要求,您可以在第一陣列分成2個部分,合併所有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個小時..非常感謝! – 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))

這將是因爲我們正在轉換無序陣列數組設置爲減法。

或者你可以嘗試

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

相關問題