Swiftで辞書の繰り返し処理をする際にインデックスを取得する方法について記載します。
繰り返し処理でインデックスを取得・処理する方法
for-in と enumerated メソッド を使用します。
書式
for( インデックスを格納する変数、辞書の要素を格納する変数 )in 辞書変数.enumerated()
実行例( インデックスと辞書のキー、バリューを出力 )
1 2 3 4 5 6 7 8 9 10 11 12 13 |
let dict = [ "apple": 100 , "orange": 200, "banana":300 ] for( idx, elem ) in dict.enumerated() { let key = elem.key let value = elem.value print("idx : \(idx)、key : \(key)、value : \(value)") } // idx : 0、key : banana、value : 300 // idx : 1、key : apple、value : 100 // idx : 2、key : orange、value : 200 |
また、 for-in は continue や break も使えるので、スキップ や 処理を抜けることもできます。
実行例( continue )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
let dict = [ "apple": 100 , "orange": 200, "banana":300 ] for( idx, elem ) in dict.enumerated() { let key = elem.key let value = elem.value if key == "orange" { continue } print("idx : \(idx)、key : \(key)、value : \(value)") } // idx : 0、key : apple、value : 100 // idx : 1、key : banana、value : 300 |
実行例( break )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
let dict = [ "apple": 100 , "orange": 200, "banana":300 ] for( idx, elem ) in dict.enumerated() { let key = elem.key let value = elem.value if key == "banana" { break } print("idx : \(idx)、key : \(key)、value : \(value)") } // idx : 0、key : apple、value : 100 |
インデックスを使用しないで、辞書を繰り返し処理する場合は、辞書を要素を繰り返し(ループ)処理する方法 をご覧ください。