【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メソッドでは、一次元配列に変換された値が返ります。

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

 

スポンサーリンク

シェアする

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

フォローする