我想从字典数组中的所有字典中检索名为“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"的值。字典查找返回一个可选值。如果该键不存在,则结果为nilcompactMap跳过nil值并展开当前值。

08-26 02:38