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

Swift中如何将[Dictionary<String, Any>.Element]转为[String: Any]?

解决Swift字典数组排序后转字典类型的问题

你的问题出在dict.sorted(by:)返回的是键值对数组([(key: String, value: Any)],也就是Dictionary<String, Any>.Element的数组),而非字典类型。要把排序后的键值对数组转回[String: Any],可以用Swift标准库的Dictionary(uniqueKeysWithValues:)初始化器——因为原字典的键本身是唯一的,排序后不会出现重复键,完全适用这个方法。

修改后的完整代码如下:

func sortWithTableColumn(datavalue: [[String : Any]]) -> [[String : Any]] {
    var allresult2 = [[String : Any]]()
    for dict in datavalue {
        // 先按key排序得到键值对数组,再转成字典
        let sortedDict = Dictionary(uniqueKeysWithValues: dict.sorted(by: { $0.key < $1.key }))
        allresult2.append(sortedDict)
    }
    // 补上缺失的返回语句
    return allresult2
}

关键说明:

  • Dictionary(uniqueKeysWithValues:):接收一个由唯一键值对组成的序列,直接构造出对应的字典,完美匹配我们排序后的键值对数组场景。
  • 原函数缺少return语句,已经补上,确保符合函数返回值的要求。

内容的提问来源于stack exchange,提问作者Mohammed Ebrahim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:10:27