【Swift入門】mapで配列の全要素に同じ処理を適用する

Swiftには配列の全要素に同じ処理を行いたいときに便利なmapがあります。

この記事では、

・mapとは
・数値型の配列にmapを使用する方法
・文字列型の配列にmapを使用する方法

というmapの基本的な解説から、

・Dictionaly(辞書)にmapを使用する

などの応用的な使い方に関しても解説していきます。

今回はそんなmapの使い方についてわかりやすく解説します!

※この記事ではSwift3.1を使用しています。

mapとは

mapとは配列の全要素に同じ処理を適用する場合に使用します。

例えば数値型の要素が格納されている配列の全要素に数値を加算したり、文字列の配列の場合は文字列を結合するときなどに使用します。

書き方:

配列名.map{ $0 * 3}

mapではクロージャの引数を省略する場合に使用するコード$0を指定します。

次に全要素に対して行いたい処理(ここでは各要素を3倍)を指定します。

mapはforeach文のようにループの中で要素を1つずつ変更する必要が無く、簡単に記述できるので全要素同じ処理を適用したい場合はmapを使用しましょう。

mapの基本的な使い方

ここではmapの使い方について見ていきましょう。

数値型の配列

以下ではInt型の数値を格納した配列の全要素に対して、値を3倍にしています。

サンプルプログラム1

let valueArray1 = [100, 200, 300, 400, 500]

//全要素を3倍にする
let valueArray2 = valueArray1.map { $0 * 3 }
print(valueArray2)

実行結果:

[300, 600, 900, 1200, 1500]

このようにmapを使えば全要素の値を3倍にした配列を簡単に作れます。

また、以下のように消費税を計算したいときも便利です。

サンプルプログラム2

let valueArray1 = [100, 200, 300, 400, 500]
var valueArray2: [Double]

//消費税を計算(8%)
valueArray2 = valueArray1.map { Double($0) * 0.08 }
print(valueArray2.map {Int($0)})

実行結果:

[8, 16, 24, 32, 40]

Int型の配列に対して浮動小数点演算を行いますので、サンプルのようにInt型の配列をキャストする必要があります。

文字列型の配列

以下では文字列Stringの値に文字列を結合しています。

String型の配列にmapで文字列を結合する場合は「map { $0 +(プラス)演算子 文字列}」となります。

サンプルプログラム

let strArray1 = ["apple", "orange", "banana"]

//配列の全要素に文字列を結合
let strArray2 = strArray1.map { $0 + "_fruits." }
print(strArray2)

実行結果:

["apple_fruits.", "orange_fruits.", "banana_fruits."]

Dictionalyにmapを使用する

mapはDictionaly(辞書)の全要素にも適用できます。

以下のサンプルではDictionalyの値に10を加算しています。

サンプルプログラム

let fruits = ["apple":100, "orange":80, "banana":150]

//全要素に10を加算
let fruits_value = fruits.map { ($0, $1 + 10) }
print(fruits_value)

実行結果:

[("orange", 90), ("banana", 160), ("apple", 110)]

まとめ

ここではmapを使用して配列の全要素に同じ処理を適用する方法や、Dictionaly(辞書)の値に全要素を適用する方法について解説しました。

mapを使用すれば、配列の全要素に同じ処理を行うことができるので非常に便利です。

もし、mapの使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部として、これまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。プログラミング初学者に向けてわかりやすく、ためになるコンテンツ作りを心がけています。

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー