Ios 如何从swift字典数组中获取选定键数组的值及其复杂性

Ios 如何从swift字典数组中获取选定键数组的值及其复杂性,ios,swift,xcode,big-o,higher-order-functions,Ios,Swift,Xcode,Big O,Higher Order Functions,假设我得到了下面的回答。我想从下面的操作中了解两件事 1.)如何使用swift中的高阶函数改进/优化以下代码 2.)还想知道代码的当前复杂性以及您建议的任何优化代码的复杂性 在下面的响应中,我只想检查keystebechecked中描述的某些键的值,对于该特定键,我需要执行一个操作。操作完成后,我想向响应中添加一个新键(键6),如下所示。以下操作对我来说很好,这就是我打算做的。我在寻找上面提到的两件事 var response = [["key1": 1, "key2": 0, "name":

假设我得到了下面的回答。我想从下面的操作中了解两件事

1.)如何使用swift中的高阶函数改进/优化以下代码

2.)还想知道代码的当前复杂性以及您建议的任何优化代码的复杂性

在下面的响应中,我只想检查keystebechecked中描述的某些键的值,对于该特定键,我需要执行一个操作。操作完成后,我想向响应中添加一个新键(键6),如下所示。以下操作对我来说很好,这就是我打算做的。我在寻找上面提到的两件事

var response = [["key1": 1, "key2": 0, "name": "John", "key3": 1, "key4": 1, "place": "Newyork", "key5": 0],
                ["key1": 0, "key2": 1, "name": "Mike", "key3": 1, "key4": 0, "place": "California", "key5": 1],
                ["key1": 1, "key2": 0, "name": "John", "key3": 0, "key4": 1, "place": "Boston", "key5": 1]]
让keystebechecked=[“key1”、“key2”、“key3”、“key4”、“key5”]
对于响应中的var项{
var dict=[String:String]()
对于项目中的(键、值){
如果keystebechecked.contains(键){
dict[key]=“\(值)”
如果dict[key]=“1”{
//执行所需的操作
输出
}
}
}
项目[“键6”]=输出
response.append(项目)
}
打印(响应)//应打印以下内容
我的预期产出是
响应=[“键1”:1,“键2”:0,“名称”:“约翰”,“键3”:1,“键4”:1,“地点”:“纽约”,“键5”:0,“键6”:“输出”],
[“key1:0”、“key2:1”、“name”:“Mike”、“key3:1”、“key4:0”、“place”:“California”、“key5:1”、“key6”:“output”],
[“键1”:1,“键2”:0,“名称”:“约翰”,“键3”:0,“键4”:1,“地点”:“波士顿”,“键5”:1,“键6”:“输出”]]

对于高阶函数,您可以尝试

let result = response.map { (dict) -> [String:Any] in
    var filteredDict = [String:Any]()
    dict.forEach({ (key, value) in
        if keysToBeChecked.contains(key) {
            filteredDict[key] = value
            if (value as? Int) == 1 {
                filteredDict["key6"] = "output"
            }
        }
    })
    return filteredDict
}

我投票结束这个问题,因为它更适合于“全部
关键点(1…6)
的意思?”?如果您从实际响应中获得此值,那么创建模型比遵守
Codable
@vpoltave键(1…6)只不过是6个不同的键要好。Thanks@PGDev. 这起了部分作用。另外,我需要检查element.key值是否等于1,并在添加key6之前执行一个操作以获得所需的输出。根据您的要求更新答案。这很有效。谢谢关于您建议的方法和我发布的方法的复杂性,您有什么见解吗?复杂性将是numberOfDict*numberOfKeys。如果答案有帮助,请接受(在左边打勾)。快乐编码。。