SwiftUI | mapで配列の全要素に同じ処理を行う

SwiftUI

SwiftUIでmapで配列の全要素に同じ処理を行う方法を説明する。

結論

元の配列.map{ $0 処理内容 }と記述する。$0は元の配列の各要素を示す。

例1 基本

元の配列の各要素に1000を加算する。

let 元の配列: [Int] = [0, 1, 2]
let 変更後の配列: [Int] = 元の配列.map {
    $0 + 1000
}
print(元の配列)
print(変更後の配列)

実行結果

[0, 1, 2]
[1000, 1001, 1002]

例2 多次元配列

多次元配列の場合は1次元配列のときの書き方から単純に階層を増やすだけでよい。

let 元の配列: [[Int]] = [[0, 1, 2], [10, 11, 12]]
let 変更後の配列: [[Int]] = 元の配列.map {
    $0.map {
        $0 + 1000
    }
}
print(元の配列)
print(変更後の配列)

実行結果

[[0, 1, 2], [10, 11, 12]]
[[1000, 1001, 1002], [1010, 1011, 1012]]

例3 ディクショナリ(辞書型)

元の配列.map { ($0, $1 処理内容) }という書き方にすることでディクショナリ(辞書型)でも使える。

var before = ["ヨシヒコのHP":100, "ぶとうかのHP":80, "けんじゃのHP":150]
print(before)

print("石川梨華は エッチなしたぎを そうびした!")

print("ぜんいんのHPが 100かいふくした!")
let after = before.map { ($0, $1 + 100) }
print(after)

実行結果

["ヨシヒコのHP":100, "ぶとうかのHP":80, "けんじゃのHP":150]
石川梨華は エッチなしたぎを そうびした!
ぜんいんのHPが 100かいふくした!
[("ヨシヒコのHP", 200), ("ぶとうかのHP", 180), ("けんじゃのHP", 250)]

まとめ

SwiftUIでmapで配列の全要素に同じ処理を行う方法を説明した。

コメント

タイトルとURLをコピーしました