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
相关产品推荐
相关产品推荐

