从键值对数组创建键数组
Creating an array of keys from a key value pair array
最初我对返回键值对数组的字典进行排序,并试图将其转换为字典,这时我被告知字典的顺序是随机的,因此我所做的是无用的。我正在尝试将这个键值对数组转换为仅包含键的数组,并且想知道该怎么做。这是我的代码:
let posts = ["post1" : 3, "post2" : 41, "post3" : 27]
let sortedPS = posts.sorted { .1 < [=10=].1 }
posts
是字典,sortedPS
是 Array<(key: String, value: Int)>
类型,据我所知是元组的键值对 Array/Array。 sortedPS
应该是一个元组数组,如下所示:
["post2" : 41, "post3" : 27, "post1" : 3]
我想要一个这样的数组:
["post2", "post3", "post1"]
请告诉我如何从 sortedPS
中获取密钥并生成数组。
您可以使用下面的短代码从字典中获取所有键。
let posts = ["post1" : 3, "post2" : 41, "post3" : 27]
let sortedPS = posts.sorted { .1 < [=10=].1 }
let keys = sortedPS.map { [=10=].key } // ["post2", "post3", "post1"]
简写方式:
print(Array(posts.keys))
print(Array(posts.values))
Result:
["post2", "post3", "post1"]
最初我对返回键值对数组的字典进行排序,并试图将其转换为字典,这时我被告知字典的顺序是随机的,因此我所做的是无用的。我正在尝试将这个键值对数组转换为仅包含键的数组,并且想知道该怎么做。这是我的代码:
let posts = ["post1" : 3, "post2" : 41, "post3" : 27]
let sortedPS = posts.sorted { .1 < [=10=].1 }
posts
是字典,sortedPS
是 Array<(key: String, value: Int)>
类型,据我所知是元组的键值对 Array/Array。 sortedPS
应该是一个元组数组,如下所示:
["post2" : 41, "post3" : 27, "post1" : 3]
我想要一个这样的数组:
["post2", "post3", "post1"]
请告诉我如何从 sortedPS
中获取密钥并生成数组。
您可以使用下面的短代码从字典中获取所有键。
let posts = ["post1" : 3, "post2" : 41, "post3" : 27]
let sortedPS = posts.sorted { .1 < [=10=].1 }
let keys = sortedPS.map { [=10=].key } // ["post2", "post3", "post1"]
简写方式:
print(Array(posts.keys))
print(Array(posts.values))
Result:
["post2", "post3", "post1"]