下面是一个按值对类型为[String: [String: Any]]的字典进行排序的示例代码:
let dictionary: [String: [String: Any]] = [
"key1": ["name": "John", "age": 25],
"key2": ["name": "Alice", "age": 30],
"key3": ["name": "Bob", "age": 20]
]
let sortedKeys = dictionary.keys.sorted(by: { (key1, key2) -> Bool in
guard let age1 = dictionary[key1]?["age"] as? Int,
let age2 = dictionary[key2]?["age"] as? Int else {
return false
}
return age1 < age2
})
for key in sortedKeys {
if let name = dictionary[key]?["name"] as? String,
let age = dictionary[key]?["age"] as? Int {
print("\(key): name=\(name), age=\(age)")
}
}
这段代码首先定义了一个类型为[String: [String: Any]]的字典,其中包含了一些键值对。然后,使用keys.sorted(by:)
方法对字典的键进行排序,排序的依据是字典值中的"age"键对应的值。排序结果存储在sortedKeys
数组中。
最后,使用sortedKeys
数组中的键,通过字典取值的方式获取相应的"name"和"age",并打印出来。输出结果将按照年龄从小到大的顺序打印。
注意,这段代码假设字典中的每个值都包含"name"和"age"键,且对应的值分别为字符串和整数类型。如果字典中的值可能缺少这些键或者值的类型不一致,需要在代码中进行适当的处理。
上一篇:按值对Laravel集合进行排序
下一篇:按值对链表进行排序