Swift Dictionary sorted()

The sorted() method sorts a dictionary by key or value in a specific order (ascending or descending).

Example

let age = ["Ranjit": 1930, "Sabby": 2008 ]

// sort dictionary by key in ascending order let sortAge = age.sorted(by: <)
print(sortAge) // Output: [(key: "Ranjit", value: 1930), (key: "Sabby", value: 2008)]

sorted() Syntax

The syntax of the dictionary sorted() method is:

dictionary.sorted(by: {operator})

Here, dictionary is an object of the dictionary class.


sorted() Parameters

The sorted() method can take one parameter:

  • operator (optional) - a closure that accepts a condition and returns a Bool value.

Note: If we pass greater-than operator >, the dictionary is sorted in descending order


sorted() Return Value

The sorted() method returns an array of tuples.


Example 1: Swift dictionary sorted()

var info = ["Carlos": 1999, "Nelson": 1987]

// sort dictionary by key in ascending order let sortInfo = info.sorted(by: > )
print(sortInfo)

Output

[(key: "Nelson", value: 1987), (key: "Carlos", value: 1999)]

Here, we can see that the info dictionary is sorted by key in ascending order of the string. For example, "Carlos" comes before "Nelson" because "C" comes before "N".


Example 2: Sort by Passing Closure

ley info = ["Carlos": 1999, "Nelson": 1987]

// sort dictionary by value in ascending order let sortInfo = info.sorted(by: { $0.value < $1.value } )
print(sortInfo)

Output

[(key: "Nelson", value: 1987), (key: "Carlos", value: 1999)]

In the above example, we have passed the closure to sort info by value in ascending order. Notice the closure definition,

{ $0.value < $1.value }

This is a short-hand closure that checks whether the first value of info is less than the second value or not.

$0 and $1 is the shortcut to mean the first and second parameters passed into the closure.

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