Swift Dictionary randomElement()

The randomElement() method returns a random key-value pair from the dictionary.

Example

// Create a dictionary with three elements
var information = ["Charlie": 54, "Harvey": 38, "Donna": 34]

// get random element using randomElement() var result = information.randomElement()!
// print updated dictionary print(result) // Output: (key: "Harvey", value: 38)

randomElement() Syntax

The syntax of the randomElement() method is:

dictionary.randomElement()

Here, dictionary is an object of the Dictionary class.


randomElement() Parameters

The randomElement() method doesn't take any parameter.


randomElement() Return Value

  • The randomElement() method returns a random element from the dictionary.

Note: The randomElement() method returns an optional value, so we need to unwrap it. There are different techniques to unwrap optionals. To learn more about optionals, visit Swift Optionals.


Example 1: Swift randomElement()

// Create a dictionary with three elements
var information = ["Carlos": 1999, "Judy": 1992, "Nelson": 1987]

// get random element without unwrapping optionals print(information.randomElement())
// get random element after unwrapping optionals print(information.randomElement()!)

Output

Optional((key: "Carlos", value: 1999))
(key: "Carlos", value: 1999)

In the above example, we have created a dictionary named information. Notice the following:

  • information.randomElement() - since we have not unwrapped the optional, the method returns Optional((key: "Carlos", value: 1999))
  • information.randomElement()! - since we have used ! to force unwrap the optional, the method returns (key: "Carlos", value: 1999)

To learn more about forced unwrapping, visit Optional Forced Unwrapping.


Example 2: Using ?? Operator With randomElement()

// create a dictionary with two elements
var info1 = ["Uikit": 2001, "Swiftui": 2019]

// return random element from info1 print(info1.randomElement() ?? "Empty")
// create empty dictionary var info2 = [String:Int]()
// return random element from info2 print(info2.randomElement() ?? "Empty")

Output

(key: "Swiftui", value: 2019)
Empty

Here, the nil-coalescing operator ?? unwraps the optional dictionary info1 and info2 if they contain a value else it returns the default value "Empty".

Did you find this article helpful?