501 Stimmen

Wie füge ich Arrays in Swift zusammen oder verschmelze sie?

Wenn in Swift zwei Arrays erstellt werden, wie folgt:

var a: [CGFloat] = [1, 2, 3]
var b: [CGFloat] = [4, 5, 6]

Wie können sie zu [1, 2, 3, 4, 5, 6] fusioniert werden?

12voto

blackjacx Punkte 7220

Also ruft dieses Problem wirklich nach flatMap, es ist nicht nötig, etwas selbst neu zu implementieren oder reduce zu verwenden:

var a:[CGFloat] = [1, 2, 3]
var b:[CGFloat] = [4, 5, 6]
let merged = [a, b].flatMap { $0 }

Das war's - viel Spaß

11voto

Stotch Punkte 393

Swift 4.X

einfachste Weg, den ich kenne, ist einfach das + Zeichen zu verwenden

var Array1 = ["Item 1", "Item 2"]
var Array2 = ["Thing 1", "Thing 2"]

var Array3 = Array1 + Array2

// Array 3 wird einfach nur kombiniert sein :)

7voto

Li Jin Punkte 1437

Swift 5 Array Erweiterung

extension Array where Element: Sequence {
    func joined() -> Array {
        return self.reduce([], +)
    }
}

Beispiel:

let array = [[1,2,3], [4,5,6], [7,8,9]]
print(array.joined())

//Ergebnis: [1, 2, 3, 4, 5, 6, 7, 8, 9]

5voto

Vitalii Punkte 3909

Wenn Sie möchten, dass das zweite Array nach einem bestimmten Index eingefügt wird, können Sie dies tun (ab Swift 2.2):

let index = 1
if 0 ... a.count ~= index {
     a[index..

4voto

X.Creates Punkte 18804

Swift 3.0

Sie können ein neues Array erstellen, indem Sie zwei vorhandene Arrays mit kompatiblen Typen mit dem Addition-Operator (+) zusammenfügen. Der Typ des neuen Arrays wird aus dem Typ der beiden zusammengefügten Arrays abgeleitet,

let arr0 = Array(repeating: 1, count: 3) // [1, 1, 1]
let arr1 = Array(repeating: 2, count: 6)//[2, 2, 2, 2, 2, 2]
let arr2 = arr0 + arr1 //[1, 1, 1, 2, 2, 2, 2, 2, 2]

Dies ist das richtige Ergebnis der obigen Codes.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X