【Swift】配列の全ての要素値を変換する方法

Swiftで配列の全ての要素値を変換する方法について記載します。

全ての要素値を変換する方法

配列の全ての要素値を変換するメソッドは3つあります。

1. map メソッド
変換した結果、nil になった要素は、nil で返されます。

2. compactMap メソッド
変換した結果に nil が含まれる場合、戻り値には nil を含まない配列を返します。

3. flatMap メソッド
変換した結果が多次元配列になる場合、1次元に変換した結果を返します。

表でまとめると次のようになります。

メソッド 戻り値に nil を含む 戻り値の配列の次元数
map 多次元配列になることがある
compactMap × 多次元配列になることがある
flatMap ×(非推奨) 多次元の場合、一次元配列に変換する

1. map メソッド

引数
要素値の変換処理をクロージャーで指定します。

戻り値
クロージャーで変換された結果(nilを含む)を返します。

実行例(各要素を大文字に変換)

実行例(変換出来ない値はnilで返される)


2. compactMap メソッド

map メソッドとの違いは、変換後の要素に nil が含まれる場合、nil が含まれない配列を返します。

実行例(nil は戻り値に含まれない)

3. flatMap メソッド

map メソッドとの違いは、変換した結果が多次元配列になる場合、一次元に変換した結果を返します。

次の実行例では、配列の各要素ごとに区切り文字 “-” で分割し、結果が配列として返されるため
map メソッドでは、そのまま二次元配列で返されますが
flapMapメソッドでは、一次元配列に変換された値が返ります。

実行例(多次元配列は一次元配列で返される)

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする