说我有
val obj1 = js.Dynamic.literal(attr1 = "x")
val obj2 = js.Dynamic.literal(attr2 = "y")
我想将obj1和obj2组合成
的yield和object{attr1 = "x", attr2 = "y"}
js.Dynamic是否有方法可以产生这样的组合?
答案 0 :(得分:5)
没有现成的方法可以做到这一点。在ES6中有Object.assign
,但在IE中不支持。
我建议在Scala.js中重新实现它:
def mergeJSObjects(objs: js.Dynamic*): js.Dynamic = {
val result = js.Dictionary.empty[Any]
for (source <- objs) {
for ((key, value) <- source.asInstanceOf[js.Dictionary[Any]])
result(key) = value
}
result.asInstanceOf[js.Dynamic]
}
现在你可以简单地做
mergeJSObjects(obj1, obj2)