Bird
Raised Fist0
Swiftprogramming~5 mins

Map, filter, reduce patterns in Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the map function do in Swift?
The map function takes a collection and applies a transformation to each item, returning a new collection with the transformed items.
Click to reveal answer
beginner
Explain the purpose of the filter function.
The filter function selects elements from a collection that meet a condition, returning a new collection with only those elements.
Click to reveal answer
intermediate
What is the role of reduce in Swift collections?
reduce combines all elements of a collection into a single value by repeatedly applying a combining function, starting from an initial value.
Click to reveal answer
beginner
Given an array [1, 2, 3], what is the result of map { $0 * 2 }?
The result is [2, 4, 6] because each number is multiplied by 2.
Click to reveal answer
beginner
How would you use filter to get only even numbers from [1, 2, 3, 4]?
Use filter { $0 % 2 == 0 } to get [2, 4], selecting only numbers divisible by 2.
Click to reveal answer
What does the map function return?
AThe original collection unchanged
BA single combined value
CA new collection with transformed elements
DOnly elements that meet a condition
Which function would you use to select elements based on a condition?
Afilter
Bmap
Creduce
Dsort
What is the initial value used for in reduce?
ATo start combining elements
BTo filter elements
CTo transform elements
DTo sort elements
What will [1, 2, 3].filter { $0 > 1 } return?
A[]
B[1]
C[1, 2, 3]
D[2, 3]
Which pattern combines all elements into one value?
Amap
Breduce
Cfilter
DforEach
Describe how you would use map, filter, and reduce to process a list of numbers.
Think about changing, selecting, and summarizing data.
You got /3 concepts.
    Explain the difference between map and filter with examples.
    One changes all items, the other picks some items.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the map function do in Swift when applied to an array?
      easy
      A. It changes each item in the array based on a rule.
      B. It removes items that don't match a condition.
      C. It combines all items into a single value.
      D. It sorts the array in ascending order.

      Solution

      1. Step 1: Understand the purpose of map

        The map function applies a transformation to each element in the array, creating a new array with the changed items.
      2. Step 2: Compare with other functions

        Unlike filter which removes items, or reduce which combines items, map changes each item individually.
      3. Final Answer:

        It changes each item in the array based on a rule. -> Option A
      4. Quick Check:

        map = change each item [OK]
      Hint: Map transforms every item, filter picks, reduce combines [OK]
      Common Mistakes:
      • Confusing map with filter or reduce
      • Thinking map removes items
      • Assuming map combines items into one
      2. Which of the following is the correct syntax to use filter on an array numbers to keep only even numbers?
      easy
      A. let evens = numbers.map { $0 % 2 == 0 }
      B. let evens = numbers.filter($0 % 2 == 0)
      C. let evens = numbers.reduce(0) { $0 % 2 == 0 }
      D. let evens = numbers.filter { $0 % 2 == 0 }

      Solution

      1. Step 1: Identify correct filter syntax

        The filter method uses a closure with a condition inside curly braces, like { $0 % 2 == 0 }, to keep items matching the condition.
      2. Step 2: Check each option

        let evens = numbers.filter { $0 % 2 == 0 } correctly uses filter with the closure. let evens = numbers.map { $0 % 2 == 0 } uses map which changes items, not filters. let evens = numbers.reduce(0) { $0 % 2 == 0 } misuses reduce. let evens = numbers.filter($0 % 2 == 0) misses the closure braces.
      3. Final Answer:

        let evens = numbers.filter { $0 % 2 == 0 } -> Option D
      4. Quick Check:

        filter syntax = filter { condition } [OK]
      Hint: Filter needs braces and a condition inside { } [OK]
      Common Mistakes:
      • Using map instead of filter
      • Omitting braces in closure
      • Using reduce incorrectly for filtering
      3. What is the output of this Swift code?
      let numbers = [1, 2, 3, 4]
      let result = numbers.reduce(0) { $0 + $1 }
      print(result)
      medium
      A. 0
      B. [1, 2, 3, 4]
      C. 10
      D. Error

      Solution

      1. Step 1: Understand reduce with initial value 0

        The reduce starts with 0 and adds each number in the array: 0 + 1 + 2 + 3 + 4.
      2. Step 2: Calculate the sum

        Adding all numbers: 0 + 1 = 1, 1 + 2 = 3, 3 + 3 = 6, 6 + 4 = 10.
      3. Final Answer:

        10 -> Option C
      4. Quick Check:

        Sum of [1,2,3,4] = 10 [OK]
      Hint: Reduce with + sums all items starting from initial value [OK]
      Common Mistakes:
      • Confusing reduce with map or filter output
      • Forgetting initial value in reduce
      • Expecting array output instead of single value
      4. Identify the error in this Swift code snippet:
      let words = ["apple", "banana", "cherry"]
      let filtered = words.filter { word in
          word.count > 5
      }
      print(filtered)
      medium
      A. No error, code runs correctly
      B. Incorrect use of filter instead of map
      C. Using word.count instead of word.length
      D. Missing return keyword inside filter closure

      Solution

      1. Step 1: Check filter closure syntax

        The closure uses implicit return because it is a single expression, so no explicit return is needed.
      2. Step 2: Verify property usage

        word.count is the correct way to get string length in Swift, so no error there.
      3. Final Answer:

        No error, code runs correctly -> Option A
      4. Quick Check:

        Single-expression closures return implicitly [OK]
      Hint: Single-expression closures return automatically, no return needed [OK]
      Common Mistakes:
      • Adding unnecessary return keyword
      • Confusing count with length property
      • Thinking filter needs map syntax
      5. Given an array of integers, how would you use map, filter, and reduce together to find the sum of squares of only the odd numbers? Choose the correct Swift code.
      hard
      A. let sum = numbers.map { $0 * $0 }.filter { $0 % 2 != 0 }.reduce(0, +)
      B. let sum = numbers.filter { $0 % 2 != 0 }.map { $0 * $0 }.reduce(0, +)
      C. let sum = numbers.reduce(0) { $0 + $1 * $1 }
      D. let sum = numbers.filter { $0 % 2 == 0 }.map { $0 * $0 }.reduce(0, +)

      Solution

      1. Step 1: Filter odd numbers first

        We want only odd numbers, so use filter { $0 % 2 != 0 } to keep them.
      2. Step 2: Map to square each odd number

        Use map { $0 * $0 } to get squares of the filtered odd numbers.
      3. Step 3: Reduce to sum all squares

        Use reduce(0, +) to add all squared values into one sum.
      4. Final Answer:

        let sum = numbers.filter { $0 % 2 != 0 }.map { $0 * $0 }.reduce(0, +) -> Option B
      5. Quick Check:

        Filter odds, map squares, reduce sum [OK]
      Hint: Filter odds first, then map squares, finally reduce sum [OK]
      Common Mistakes:
      • Mapping before filtering odd numbers
      • Filtering even numbers by mistake
      • Using reduce without mapping squares
      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