ios - 获取 NSDictionary 中存在的所有键并放入 Array
问题描述
当我从子“abc”快照时,我得到了这个 NSDictionary,“3c”可以添加更多嵌套的子。如何获取 NSDictionary 中的所有键并放入 Array 预期结果:["abc","1a","2b","3c"]
value.allkeys 只是采用相同的层次结构键
解决方案
正如@AechoLiu 所写,递归方法是一种很好的方法。如下所示:
func nestedKeys(in dictionary: [String: Any]) -> [String] {
guard let dictionaryValues = dictionary.values.filter({ $0 is [String: Any] }) as? [[String: Any]] else {
return [String]() + dictionary.keys
}
let subKeys = dictionaryValues.reduce([String]()) { result, dictionary in
return result + nestedKeys(in: dictionary)
}
return dictionary.keys + subKeys
}
以上期望您的字典[String: Any]
显然是格式。
推荐阅读
- python - 将 Pandas 标头转换为字符串类型
- python - 如何过滤字符串列表中的关键字?
- python - AttributeError:“NoneType”对象没有属性“nrows”
- django - 尝试使用导出为 csv 时,我只得到 id
- angular - http post Observable / subscribe 中的角度路由
- gcc - 无法识别的选项 --gc-keep-exported on arm ld
- git - 在 Windows 10 和 WSL2 之间共享 Git 和 SSH 配置
- python - 在 python 中升级 pip 时出现以下错误
- android - Android 11 - ROOT:挂载 /system 失败,在 /proc/system 中找不到
- python-3.x - 如何在熊猫数据框中为每周列设置日期时间类型索引