Bird
Raised Fist0
Swiftprogramming~5 mins

Array iteration and enumerated in Swift

Choose your learning style10 modes available
Introduction

We use array iteration to look at each item in a list one by one. Enumerated helps us see both the item and its position in the list.

When you want to print all items in a shopping list.
When you need to check each student's score in a class.
When you want to find the position of a specific item while going through a list.
When you want to number items as you show them on screen.
Syntax
Swift
let array = ["apple", "banana", "cherry"]

// Simple iteration
for item in array {
    print(item)
}

// Using enumerated to get index and item
for (index, item) in array.enumerated() {
    print("Item \(index): \(item)")
}

The for-in loop goes through each item in the array.

The enumerated() method gives both the position (index) and the item.

Examples
This shows what happens if the array has no items. The loop does not run.
Swift
let emptyArray: [String] = []
for item in emptyArray {
    print(item)
}
// No output because the array is empty
When the array has one item, enumerated still works and shows index 0.
Swift
let singleItemArray = ["only"]
for (index, item) in singleItemArray.enumerated() {
    print("Index: \(index), Item: \(item)")
}
This example shows how to check if the item is first, last, or in the middle using the index.
Swift
let fruits = ["apple", "banana", "cherry"]
for (index, item) in fruits.enumerated() {
    if index == 0 {
        print("First fruit: \(item)")
    } else if index == fruits.count - 1 {
        print("Last fruit: \(item)")
    } else {
        print("Middle fruit: \(item)")
    }
}
Sample Program

This program shows a list of colors. It first prints the whole list. Then it prints each color one by one. Finally, it prints each color with its number starting from 1.

Swift
import Foundation

let colors = ["Red", "Green", "Blue"]

print("Colors before iteration:")
print(colors)

print("\nIterating over colors:")
for color in colors {
    print(color)
}

print("\nIterating with index and color:")
for (index, color) in colors.enumerated() {
    print("Color number \(index + 1): \(color)")
}
OutputSuccess
Important Notes

Time complexity is O(n) because we look at each item once.

Space complexity is O(1) extra space since we only use variables for the loop.

A common mistake is forgetting that array indexes start at 0, so numbering might be off by one if not adjusted.

Use simple iteration when you only need items. Use enumerated when you also need the position of each item.

Summary

Array iteration lets you visit each item in a list one by one.

Enumerated gives you both the item and its position (index) in the list.

Remember indexes start at 0, so add 1 if you want to show counting from 1.

Practice

(1/5)
1. What does the enumerated() method do when used on an array in Swift?
easy
A. It provides both the index and the value of each element during iteration.
B. It reverses the order of the array elements.
C. It filters out duplicate elements from the array.
D. It sorts the array in ascending order.

Solution

  1. Step 1: Understand the purpose of enumerated()

    The enumerated() method returns a sequence of pairs (index, value) for each element in the array.
  2. Step 2: Identify what is returned during iteration

    Each iteration gives you the position (index) and the element itself (value), allowing you to use both.
  3. Final Answer:

    It provides both the index and the value of each element during iteration. -> Option A
  4. Quick Check:

    enumerated() = index + value [OK]
Hint: Remember: enumerated() gives index and item together [OK]
Common Mistakes:
  • Thinking enumerated() changes array order
  • Believing enumerated() filters or sorts elements
  • Confusing enumerated() with map or filter
2. Which of the following is the correct syntax to iterate over an array fruits using enumerated() in Swift?
easy
A. for (index, fruit) in fruits.enumerated() { print(index, fruit) }
B. for index, fruit in fruits { print(index, fruit) }
C. for index, fruit in fruits.enumerated { print(index, fruit) }
D. for (fruit, index) in fruits.enumerated() { print(index, fruit) }

Solution

  1. Step 1: Check the correct use of enumerated()

    The method enumerated() must be called with parentheses to return the sequence.
  2. Step 2: Verify tuple unpacking syntax

    The for loop must unpack the tuple as (index, value) in parentheses.
  3. Final Answer:

    for (index, fruit) in fruits.enumerated() { print(index, fruit) } -> Option A
  4. Quick Check:

    Correct syntax = for (index, fruit) in fruits.enumerated() { print(index, fruit) } [OK]
Hint: Use parentheses with enumerated() and tuple unpacking [OK]
Common Mistakes:
  • Omitting parentheses after enumerated()
  • Swapping index and value order in tuple
  • Trying to unpack without parentheses
3. What will be the output of the following Swift code?
let animals = ["cat", "dog", "bird"]
for (i, animal) in animals.enumerated() {
    print("\(i): \(animal)")
}
medium
A. cat: 0 dog: 1 bird: 2
B. 1: cat 2: dog 3: bird
C. 0: cat 1: dog 2: bird
D. cat dog bird

Solution

  1. Step 1: Understand enumerated() output

    enumerated() gives index starting at 0 and the element value.
  2. Step 2: Trace the print statements

    Each line prints index, colon, space, then the animal name.
  3. Final Answer:

    0: cat 1: dog 2: bird -> Option C
  4. Quick Check:

    Index starts at 0, prints index: value [OK]
Hint: Indexes start at 0 unless adjusted [OK]
Common Mistakes:
  • Assuming index starts at 1
  • Printing value before index
  • Ignoring the colon and space formatting
4. Identify the error in the following Swift code snippet:
let numbers = [10, 20, 30]
for index, value in numbers.enumerated {
    print(index, value)
}
medium
A. print statement syntax is invalid.
B. Incorrect variable names in the for loop.
C. Array declaration syntax is wrong.
D. Missing parentheses after enumerated() method call.

Solution

  1. Step 1: Check method call syntax

    The method enumerated must be called with parentheses: enumerated().
  2. Step 2: Verify other parts of the code

    Variable names and array declaration are correct; print syntax is valid.
  3. Final Answer:

    Missing parentheses after enumerated() method call. -> Option D
  4. Quick Check:

    enumerated() needs () [OK]
Hint: Always add () after enumerated [OK]
Common Mistakes:
  • Forgetting parentheses after enumerated
  • Swapping index and value order
  • Using wrong print syntax
5. Given an array scores = [85, 92, 78, 90], write Swift code using enumerated() to print each score with its position starting from 1, like "Player 1: 85". Which code snippet correctly does this?
hard
A. for score in scores { print("Player \(score): \(score)") }
B. for (index, score) in scores.enumerated() { print("Player \(index + 1): \(score)") }
C. for (index, score) in scores.enumerated() { print("Player \(index): \(score)") }
D. for (score, index) in scores.enumerated() { print("Player \(index + 1): \(score)") }

Solution

  1. Step 1: Use enumerated() to get index and score

    enumerated() returns (index, value) tuples; index starts at 0.
  2. Step 2: Adjust index to start from 1 in print

    Add 1 to index when printing to start counting players from 1.
  3. Final Answer:

    for (index, score) in scores.enumerated() { print("Player \(index + 1): \(score)") } -> Option B
  4. Quick Check:

    Index + 1 for counting players [OK]
Hint: Add 1 to index to start counting from 1 [OK]
Common Mistakes:
  • Printing index without adding 1
  • Swapping index and value in tuple
  • Using wrong tuple unpacking order
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard