如何在 Swift 中連線或合併陣列?


Swift 提供了兩種不同的方法來連線或合併陣列。

您可以使用 +(加號)運算子或 append() 方法。您還將看到其他一些方法,說明如何在 Swift 中合併多個數組。這些方法包括:

  • 使用加號 (+) 運算子

  • 使用 append(contentOf:) 方法

  • 使用 flatMap() 高階函式

  • 使用 joined() 方法

  • 使用 reduce() 高階函式

方法 1:使用 + 運算符合並陣列

語法

let outputArray = firstArray + secondArray

為了使用 + 運算符合並陣列,它簡單地作為一個二元運算子,返回一個新合併的陣列。

演算法

  • 步驟 1 - 宣告陣列

  • 步驟 2 - 使用 + 運算符合並兩個陣列

  • 步驟 3 - 將新的合併陣列儲存在另一個變數中

示例

import Foundation
let firstArray: [String] = ["1", "2", "3", "4", "5"]
let secondArray: [String] = ["6", "7", "8", "9", "10"]
let outputArray = firstArray + secondArray
print("Array 1 = ",firstArray,"\nArray 2 = ",secondArray,"\nMerged Array =", outputArray)

輸出

Array 1 =  ["1", "2", "3", "4", "5"] 
Array 2 =  ["6", "7", "8", "9", "10"] 
Merged Array ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]

請注意,+(加號)運算子返回一個新建立的陣列,該陣列是連線的結果。

示例

請記住,+(加號)運算子負責型別安全。這意味著您不能對兩種不同型別的陣列執行此運算子。如果您這樣做,編譯器將給您一個如下所示的錯誤:

import Foundation
let firstArray: [String] = ["1", "2", "3", "4", "5"]
let secondArray: [Int] = [6, 7, 8, 9, 10]
let outputArray = firstArray + secondArray
print(outputArray)

輸出

錯誤

main.swift:4:30: error: binary operator '+' cannot be applied to operands of type '[String]' and '[Int]'
let outputArray = firstArray + secondArray

在上面的示例中,您試圖合併字串陣列和整數陣列,這是不允許的。

示例

合併兩個以上陣列 -

在下面的示例中,我們將把 3 個數組合併到一個數組中並列印輸出 -

import Foundation
let firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
let mergedArray = firstArray + secondArray + thirdArray
print(mergedArray)

輸出

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

方法 2:使用 Append(contentsOf:) 方法合併陣列

語法

firstArray.append(contentsOf: secondArray)

為了追加陣列的內容,您必須使用目標陣列呼叫 append(contentsOf:) 方法。

演算法

在進入示例之前,您應該注意,此方法不會返回任何新陣列。它將目標陣列的內容追加到呼叫陣列。

示例

import Foundation
var firstArray: [String] = ["1", "2", "3", "4", "5"]
let secondArray: [String] = ["6", "7", "8", "9", "10"]
firstArray.append(contentsOf: secondArray)
print(firstArray)

輸出

["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]

您可以看到 firstArray 是一個變數(而不是常量),用於追加 secondArray 的內容。

示例

您還可以使用 += 運算子連線陣列,這等效於如下呼叫 append(contentsOf:) 方法:

import Foundation
var firstArray: [String] = ["1", "2", "3", "4", "5"]
let secondArray: [String] = ["6", "7", "8", "9", "10"]
firstArray += secondArray

示例

合併兩個以上陣列 -

import Foundation
var firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
firstArray.append(contentsOf: secondArray)
firstArray.append(contentsOf: thirdArray)
print(firstArray)

輸出

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

方法 3:使用 FlatMap() 合併陣列

語法

在 Swift 中,flatMap 是 Sequence 上的一種方法,它透過應用轉換函式並將其結果序列展平為單個序列來轉換序列的每個元素。轉換函式可以返回一個可選值,並且該方法將自動丟棄 nil 值。

let mergedArray = [firstArray, secondArray, thirdArray].flatMap({ $0 })

為了使用 flatMap() 函式,您需要傳遞一個組合陣列的陣列,該陣列導致新的合併陣列。

演算法

以下是如何使用 flatMap 合併多個數組的示例:

  • 步驟 1 - 初始化您的陣列

  • 步驟 2 - 將所有數組合併到一個數組中

  • 步驟 3 - 在組合陣列上呼叫 flatMap() 函式。

  • 步驟 4 - 將結果陣列儲存在一個新變數中。

示例

import Foundation
let firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
let mergedArray = [firstArray, secondArray, thirdArray].flatMap({ $0 })
print(mergedArray)

輸出

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

方法 4:使用 joined() 合併陣列

語法

let flattenCollection = [firstArray, secondArray, thirdArray].joined()
let mergedArray = Array(flattenCollection)

您可以對組合陣列呼叫 join 函式,這會導致元素成為扁平集合。

現在,您需要從扁平陣列建立一個新陣列,以將所有元素合併到單個數組中。

演算法

  • 步驟 1 - 初始化您的陣列

  • 步驟 2 - 使用 joined() 函式連線它們

  • 步驟 3 - 儲存 joined 函式的結果

  • 步驟 4 - 使用 Array() 將連線的陣列轉換為單個數組

示例

此方法返回此序列的序列的元素,連線在一起。例如,

import Foundation
let firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
let flattenCollection = [firstArray, secondArray, thirdArray].joined()
let mergedArray = Array(flattenCollection)
print(mergedArray)

輸出

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

方法 5:使用 reduce() 合併陣列

語法

此方法返回使用給定閉包組合序列元素的結果。

let flattenArray = [firstArray, secondArray, thirdArray].reduce([]) { partialResult, element in
   partialResult + element
}

基本上,您必須將組合陣列與 reduce() 函式一起傳遞。為了使用 reduce() 函式,您需要分配一個初始結果,即結果的初始化。

演算法

  • 步驟 1 - 初始化您的陣列

  • 步驟 2 - 將所有數組合併到單個數組中

  • 步驟 3 - 分配初始結果

  • 步驟 4 - 將每個元素合併到部分結果中

示例

在此程式碼中,我們將使用 reduce() 函式合併 3 個數組。

import Foundation
let firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
let flattenArray = [firstArray, secondArray, thirdArray].reduce([]) { partialResult, element in
   partialResult + element
}
print(flattenArray)

輸出

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

結論

您瞭解了在 Swift 中合併陣列的不同方法。每種方法都可以在不同的場景中用於不同的目的。

更新於: 2023年1月3日

7K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.