arrays - 重新排列字典数组
问题描述
我想将我的字典数组从当前字典重新排列到输出
当前词典
[[1: ["hours": 4.0, "projectName": "starworks"]], [1: ["hours": 5.0, "projectName": "starworks"]], [2: ["hours": 7.0, "projectName": "Ada-solo"]] [2: ["hours": 5.0, "projectName": "Ada-solo"]]]
与数组比较
[1,2,3,4,5]
输出欲望
[[1: ["hours": 4.0, "projectName": "starworks"], ["hours": 5.0, "projectName": "starworks"]], [2: ["hours": 7.0, "projectName": "Ada-solo"], ["hours": 5.0, "projectName": "Ada-solo"]]]
解决方案
就像 Sulthan 所说的,您可以将字典更改为自定义对象,或者您可以使用 foreach 循环遍历字典。
你可以做这样的事情。
var dictArray = [[1: ["hours": 4.0, "projectName": "starworks"]], [1: ["hours": 5.0, "projectName": "starworks"]], [2: ["hours": 7.0, "projectName": "Ada-solo"]],[2: ["hours": 5.0, "projectName": "Ada-solo"]]]
var result = [Int: [[String:Any]]]()
dictArray.forEach { dict in
// 1. Make sure the key/values doe exist.
guard let key = dict.first?.key, let value = dict.first?.value else { return }
// 2. Check for existing data
if var existingData = result[key] {
// 3a. Append the new value
existingData.append(value)
result[key] = existingData
} else {
// 3b. Add the new value
result[key] = [value]
}
}
推荐阅读
- sparql - jena 表达式函数返回一个 RDFList
- ios - Swift Auth0 中的回调 URL 不匹配
- python - 当函数在另一个模块中时,线程无法正常工作
- scala - 如何在常规 scala repl 中导入 scala 库?
- typescript - 如何使用对象接口的键路径数组的联合类型作为接口中这些键路径的联合类型?
- java - 如何从 gradle jar 中获取 gav(groupId, artifactId, version) 信息(它不包含 pom.xml)?
- android - 如何在Android Studio中通知一类IDE,从一个屏幕传递到另一个屏幕,在手机屏幕上滑动手指?
- javascript - 将 Quasar Tooltip 添加到使用代码构建的 q-list
- android - Kotlin,应用程序存储:需要存储来自用户交互的整数的 ArrayList
- javascript - 将数据显示到页面的 Vue 功能不起作用