Arrays 重新排列字典数组

Arrays 重新排列字典数组,arrays,swift,dictionary,Arrays,Swift,Dictionary,我想将我的字典数组从当前字典重新排列到输出 现行词典 [[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:

我想将我的字典数组从当前字典重新排列到输出

现行词典

[[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]
    }
}

首先将字典转换为对象。Swift不是javascript,它不容易与字典一起使用。另外,您实际上有一个字典数组。您的输出实际上似乎无效,是不是
[[Int:[[String:Any]]]]]