How to iterate over a collection of key-value pairs (associative array) in Swift

7 Answers

0 votes
// Simple for loop with tuple destructuring 

import Foundation
 
let dict = ["d": 4, "a": 1, "c": 3, "b": 2]
 
for (key, value) in dict {
    print("\(key) = \(value)")
}
 

 
/*
run:
  
b = 2
a = 1
d = 4
c = 3
  
*/

 



answered Mar 23 by avibootz
edited Mar 23 by avibootz
0 votes
// Using forEach with a closure

import Foundation

let dict = ["d": 4, "a": 1, "c": 3, "b": 2]

dict.forEach { key, value in
    print("\(key) = \(value)")
}



/*
run:
 
d = 4
a = 1
b = 2
c = 3
 
*/

 



answered Mar 23 by avibootz
0 votes
// Iterate over keys only

import Foundation
 
let dict = ["d": 4, "a": 1, "c": 3, "b": 2]
 
for key in dict.keys {
    print("Key: \(key)")
}

 
/*
run:
  
Key: a
Key: c
Key: d
Key: b
  
*/

 



answered Mar 23 by avibootz
0 votes
// Iterate over keys + lookup

import Foundation
 
let dict = ["d": 4, "a": 1, "c": 3, "b": 2]
 
for key in dict.keys {
    print("\(key) = \(dict[key]!)")
}

 
/*
run:
  
c = 3
d = 4
a = 1
b = 2
  
*/

 



answered Mar 23 by avibootz
0 votes
// Iterate over values only

import Foundation
 
let dict = ["d": 4, "a": 1, "c": 3, "b": 2]
 
for value in dict.values {
    print(value)
}


 
/*
run:
  
2
1
4
3
  
*/

 



answered Mar 23 by avibootz
0 votes
// Iterate in sorted order - sort by keys

import Foundation
 
let dict = ["d": 4, "a": 1, "c": 3, "b": 2]
 
for key in dict.keys.sorted() {
    print("\(key) = \(dict[key]!)")
}


 
/*
run:
  
a = 1
b = 2
c = 3
d = 4
  
*/

 



answered Mar 23 by avibootz
0 votes
// Iterate in sorted order - sort by values

import Foundation
 
let dict = ["d": 4, "a": 1, "c": 3, "b": 2]
 
for (key, value) in dict.sorted(by: { $0.value < $1.value }) {
    print("\(key) = \(value)")
}


 
/*
run:
  
a = 1
b = 2
c = 3
d = 4
  
*/

 



answered Mar 23 by avibootz

Related questions

...