본문 바로가기
컴퓨터언어/Swift

[Swift] enumerated() 사용하기

by 인턴개구리 2023. 9. 17.

import SwiftUI

struct ContentView: View {
    let alphabetArray: [String] = ["a","b","c","d","e","f","g"]
    
    var body: some View {
        VStack {
            Text("AlphabetList")
                .font(.title)
                .padding(10)
            
            ForEach(alphabetArray, id: \.self){alphabet in
                Text(alphabet)
            }
        }
    }
}

AlphabetArray라는 배열이 있다. ForEach문을 돌며 a부터 g까지 반환한다.

그런데, 순서를 매기고 싶어졌다. 하지만 ForEach는 for .. in과 달리 'i += 1'과 같이 숫자를 하나씩 더하는 것이 불가능하다. 그래서 'enumerated()'를 사용하여 Index를 생성한다.


변경사항

  • alphabetArray -> Array(alphabetArray.enumerated())
  • id: \.self -> id: \.offset
  • alphabet -> index, alphabet

 


결과

import SwiftUI

struct ContentView: View {
    let alphabetArray: [String] = ["a","b","c","d","e","f","g"]
    
    var body: some View {
        VStack {
            
            Text("AlphabetList")
                .font(.title)
                .padding(10)
            
            ForEach(Array(alphabetArray.enumerated()), id: \.offset){index, alphabet in
                Text("\(index) : \(alphabet)")
            }
        }
    }
}

다음과 같이 index가 추가되어 순서를 반환할 수 있다.


Print 내역 보기

print 내역을 통해 데이터 구조를 알아보았다.

 

내 코드에서는 offset이 index, element가 alphabet이다.