swift - 合并/追加 [AnyHashable : Any]() on Swift 3

标签 swift

我有以下对象,然后想合并。

  var prop1 = [AnyHashable: Any]()
  prop1["key1"] = "Phase3"
  prop1["key2"] = "405"

  var prop2 = [AnyHashable: Any]()
  prop2["key3"] = "Phase1"
  prop2["key4"] = "45"

我想要一个最终对象 prop1+prop2 一个 [AnyHashable: Any](),最好的方法是什么?

最佳答案

你可以写

let union = Array(prop2.keys).reduce(prop1) { (dict, key) -> [AnyHashable:Any] in
    var dict = dict
    dict[key] = prop2[key]
    return dict
}

例子

var prop1 = [AnyHashable: Any]()
prop1["key1"] = "Phase3"
prop1["key2"] = "405"

var prop2 = [AnyHashable: Any]()
prop2["key3"] = "Phase1"
prop2["key4"] = "45"


let union = Array(prop2.keys).reduce(prop1) { (dict, key) -> [AnyHashable:Any] in
    var dict = dict
    dict[key] = prop2[key]
    return dict
}

dump(union) // 

重复

请注意,如果两个字典中存在相同的键,结果将从 prop2 中获取该特定键的值。

例子

let prop1 : [AnyHashable: Any] = ["key1": "value from prop1"]
let prop2 : [AnyHashable: Any] = ["key1": "value from prop2"]


let union = Array(prop2.keys).reduce(prop1) { (dict, key) -> [AnyHashable:Any] in
    var dict = dict
    dict[key] = prop2[key]
    return dict
}

print(union) // [AnyHashable("key1"): "value from prop2"]

关于swift - 合并/追加 [AnyHashable : Any]() on Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44294588/

相关文章:

swift - Vapor - 具有基本身份验证的路由始终返回 401

ios - UicollectionView 在 swift ios View 之间滚动?

ios - 如何调整 UITableView 宽度以适应其内容?

ios - 快速返回 Root View Controller

jquery - 在 JavaScriptCore 中包含 jQuery 库

swift - Swift 4 中是否可以从父类修改子类的属性?

ios - 从 View Controller 中取出 collectionview 委托(delegate)和数据源

ios - 在应用程序完成加载之前决定初始 View Controller

swift - 无法将类型 'Int' 的值转换为泛型中预期的参数类型 'Int'

arrays - 多属性排序 Swift 数组