我想从字典数组中的所有字典中检索名为“termKey”的键的值(因为我想在UITableView中显示这些值)。有什么建议吗?
以下是一系列字典:
{
"questionData": [
{
"termKey": "respiration"
},
{
"termKey": "mammals"
}
]
}
这是扁平数组:
[(key: "termKey", value: "respiration"), (key: "termKey", value: "mammals")]
我想要的输出如下:
["respiration", "mammals"]
最佳答案
对数组使用compactMap
并在闭包中查找字典键:
let questionData = [["termKey": "respiration"], ["termKey": "mammals"], ["badKey": "foo"]]
let values = questionData.compactMap { $0["termKey"] }
print(values)
["respiration", "mammals"]
compactMap
为数组中的每个元素运行其闭包以创建新数组。在这里,我们查找键"termKey"
的值。字典查找返回一个可选值。如果该键不存在,则结果为nil
。compactMap
跳过nil
值并展开当前值。