[Swift5]for文で配列のindexを取得する方法 (*+Optional型配列)

for文で配列の中身を取得することはよくあると思いますが、その時にindexを取得したい場面が出てきたので備忘として記載

コードの説明

enumeratedを使うと解決します
公式リファレンスにもサンプルコードが掲載されているので見てもいいかもしれません

サンプルコード

let intItems = [1, 3, 5, 6, 10, 6, 9, 8]

for (index, items) in intItems.enumerated() {
    print(index,items)
}

/****
 0 1
 1 3
 2 5
 3 6
 4 10
 5 6
 6 9
 7 8
 ****/

Optional型の配列のサンプルコード

Optional型配列の場合にも基本的には同じなのですが、unwrapしたい場面がほとんどだと思うので、guard letでnilの場合の処理を分岐させています。
guaredって何?という人は、多分ググれば詳しい出てくると思いますが、スコープを抜けるための処理を記載しておきます。

・return メソッドなどで処理を終了し、呼び出し元に戻る
・break 繰り返し処理などを終了する
・continue 処理をスキップする
・throw 例外を投げる

let items: [Int?] = [1, 3, nil, 6, 10, nil, nil, 8]

for (index,data) in items.enumerated() {
    guard let item = data else {
        print(index,"nil")
        
        continue
    }
    
    print(index,item)
}

/****
 0 1
 1 3
 2 nil
 3 6
 4 10
 5 nil
 6 nil
 7 8
 ****/

お知らせ

ヒヨコ歩数計という歩きながらヒヨコが育っていくアプリを作って、いろんな方に結構使ってもらっています。
RealmSwift, Admobの動画・インステ・バナー広告、UICollectionView、iOS-Charts、UITableViewを使用しているので、是非ご利用ください!