Search code examples
arraysswiftenumeration

How to iterate a loop with index and element in Swift


Is there a function that I can use to iterate over an array and have both index and element, like Python's enumerate?

for index, element in enumerate(list):
    ...

Solution

  • Yes. As of Swift 3.0, if you need the index for each element along with its value, you can use the enumerated() method to iterate over the array. It returns a sequence of pairs composed of the index and the value for each item in the array. For example:

    for (index, element) in list.enumerated() {
      print("Item \(index): \(element)")
    }
    

    Before Swift 3.0 and after Swift 2.0, the function was called enumerate():

    for (index, element) in list.enumerate() {
        print("Item \(index): \(element)")
    }
    

    Prior to Swift 2.0, enumerate was a global function.

    for (index, element) in enumerate(list) {
        println("Item \(index): \(element)")
    }