You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何将[String:Bool]类型字典转换为[String]类型数组?

解决Swift中[String:Bool]转[String]数组的问题

嘿,你遇到的问题是因为用了keys.description——这个属性其实是把所有key拼成了一个完整的字符串描述,所以放进数组里就只会得到一个包含整个描述的元素,不是你想要的单个key组成的数组。

给你两种靠谱的解决方法:

方法一:直接将keys集合转为数组

Swift里字典的keys本身是一个可遍历的集合,直接用Array()初始化就能得到你要的[String]数组:

var action = ["Nourishing": true, "Radiance": true]
let actionArray = Array(action.keys)
// 结果:["Nourishing", "Radiance"]

方法二:过滤出value为true的key(可选)

如果你的实际场景里有value为false的项,只想保留值为true对应的key,可以用filter+map组合:

var action = ["Nourishing": true, "Radiance": true, "Cleansing": false]
let filteredActionArray = action.filter { $0.value }.map { $0.key }
// 结果:["Nourishing", "Radiance"]

为什么原来的代码不对?

action.keys.description返回的是一个字符串,内容是"\"Nourishing\", \"Radiance\""——这是集合的可读描述文本,不是拆分好的单个元素。把它放进数组[action.keys.description],自然就得到了只有一个元素的数组啦。

内容的提问来源于stack exchange,提问作者Julienne Lim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:01:04