Swift Dictionary filter()

The filter() method returns all the key-value pairs from the dictionary that satisfies the provided condition.

Example

var marks = ["Sabby": 89, "Dabby": 45, "Cathy": 74]

// return all the key-value pair with value greater than 50 var result = marks.filter({ $0.value > 50})
print(result) // Output: ["Cathy": 74, "Sabby": 89]

filter() Syntax

The syntax of the filter() method is:

dictionary.filter({condition})

Here, dictionary is an object of the Dictionary class.


filter() Parameters

The filter() method takes one parameter:

  • condition - a closure that accepts a condition and returns a Bool value.

filter() Return Value

  • returns a new dictionary with all the elements from dictionary that satisfy the provided condition

Example 1: Swift dictionary filter()

var age = ["Kyle": 7, "Eric": 9, "Kenny": 10]

// return all key-value pairs with value that start with "K" var result = age.filter( { $0.key.hasPrefix("K") } )
print(result)

Output

["Nepal", "Norwegian"]

In the above program, notice the closure definition,

{ $0.key.hasPrefix("K") }

This is a short-hand closure that checks whether all the keys in the dictionary have the prefix "K" or not.

$0 is the shortcut to mean the first parameter passed into the closure.

The closure returns a Bool value depending upon the condition. If the condition is

  • true - the dictionary key-value pair is kept
  • false - the dictionary key-value pair is dropped/omitted

And finally, all the elements that start with "N" are stored in the result variable.


Example 2: Return Only Even Values From dictionary

var numbers = ["1st": 2, "2nd": 7, "3rd": 4, "4th": 5]

// check if all values are even numbers or not var result = numbers.filter({ $0.value % 2 == 0 })
print(result)

Output

["1st": 2, "3rd": 4]
Did you find this article helpful?

Your builder path starts here. Builders don't just know how to code, they create solutions that matter.

Escape tutorial hell and ship real projects.

Try Programiz PRO
  • Real-World Projects
  • On-Demand Learning
  • AI Mentor
  • Builder Community