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.
Array iteration and enumerated in 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.
let emptyArray: [String] = [] for item in emptyArray { print(item) } // No output because the array is empty
let singleItemArray = ["only"] for (index, item) in singleItemArray.enumerated() { print("Index: \(index), Item: \(item)") }
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)") } }
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.
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)") }
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.
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
enumerated() method do when used on an array in Swift?Solution
Step 1: Understand the purpose of enumerated()
Theenumerated()method returns a sequence of pairs (index, value) for each element in the array.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.Final Answer:
It provides both the index and the value of each element during iteration. -> Option AQuick Check:
enumerated() = index + value [OK]
- Thinking enumerated() changes array order
- Believing enumerated() filters or sorts elements
- Confusing enumerated() with map or filter
fruits using enumerated() in Swift?Solution
Step 1: Check the correct use of enumerated()
The methodenumerated()must be called with parentheses to return the sequence.Step 2: Verify tuple unpacking syntax
The for loop must unpack the tuple as(index, value)in parentheses.Final Answer:
for (index, fruit) in fruits.enumerated() { print(index, fruit) } -> Option AQuick Check:
Correct syntax = for (index, fruit) in fruits.enumerated() { print(index, fruit) } [OK]
- Omitting parentheses after enumerated()
- Swapping index and value order in tuple
- Trying to unpack without parentheses
let animals = ["cat", "dog", "bird"]
for (i, animal) in animals.enumerated() {
print("\(i): \(animal)")
}Solution
Step 1: Understand enumerated() output
enumerated() gives index starting at 0 and the element value.Step 2: Trace the print statements
Each line prints index, colon, space, then the animal name.Final Answer:
0: cat 1: dog 2: bird -> Option CQuick Check:
Index starts at 0, prints index: value [OK]
- Assuming index starts at 1
- Printing value before index
- Ignoring the colon and space formatting
let numbers = [10, 20, 30]
for index, value in numbers.enumerated {
print(index, value)
}Solution
Step 1: Check method call syntax
The methodenumeratedmust be called with parentheses:enumerated().Step 2: Verify other parts of the code
Variable names and array declaration are correct; print syntax is valid.Final Answer:
Missing parentheses after enumerated() method call. -> Option DQuick Check:
enumerated() needs () [OK]
- Forgetting parentheses after enumerated
- Swapping index and value order
- Using wrong print syntax
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?Solution
Step 1: Use enumerated() to get index and score
enumerated() returns (index, value) tuples; index starts at 0.Step 2: Adjust index to start from 1 in print
Add 1 to index when printing to start counting players from 1.Final Answer:
for (index, score) in scores.enumerated() { print("Player \(index + 1): \(score)") } -> Option BQuick Check:
Index + 1 for counting players [OK]
- Printing index without adding 1
- Swapping index and value in tuple
- Using wrong tuple unpacking order
Ready to prove it?
Pass the test and this pattern moves unknown
