2017-03-01 2 views
0

Ich habe zwei veränderbare Arrays:änderbaren Array fusionieren Array zu einem anderen Array

NSMutableArrayarray1; [enthaltend 1,2,3,4,5]

NSMutableArrayarray2; [Enthaltend 9,8,7]

Ich möchte array2 Werte array1 zwischen 3 und 4 eingefügt werden, so könnte das Ergebnis sein:

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

Wieder ich array2 Werte entfernen möchten aus array1, so könnte das Ergebnis sein:

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

Bitte macht mir einigen besten Ansatz, es zu erreichen.

die unten stehenden Links nicht hilft: Copy object at specific index of mutable array to the end of another array

+0

seine Update, das Sie array2 am 4. Index in array1 eingefügt werden soll? – CodeChanger

+0

Nein, bei jedem Index kann ich Array2 einfügen, aber auf einmal erhält es den Indexwert. – Ren

+0

@Ren Sie müssen Objekt nach Objekt 3 hinzufügen, das Recht reparieren? Bedeutet immer zwischen Objekt 3 und 4. –

Antwort

3

Basierend auf Ihrer Anforderung Sie Ihre erste Array in 2 Teil und verschmelzen alle 3-Array zur endgültigen Array für immer erwartete Ausgabe aufspalten.

Bitte überprüfen Sie diesen Code:

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); 

hoffen, dass dies Ihnen hilft.

+0

Danke! Lemme es überprüfen. – Ren

+0

Sie haben meine 4 Stunden gerettet .. vielen Dank! – Ren

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

zum Einfügen array2 bei Index 3 Verwendung

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

zum Entfernen können Sie entweder

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

die ungeordnete Array sein wird, wie wir ein konvertieren Array für die Subtraktion.

oder Sie können versuchen

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

Danke Jagdeep, aber ich verwende Ziel C. – Ren

Verwandte Themen