var old = { 'a':3, 'b': 5 }
var new = { 'a': 999, 'c': 10 }
如何将“new”附加到“old”并导致:
{ 'a': 999, 'b': 5, 'c': 10 }
答案 0 :(得分:5)
如果您正在使用框架,那么大多数都有一个可以执行此操作的函数,例如jQuery的扩展。否则,如果你使用没有框架的JavaScript,你必须自己做。
你可以使用for ... in循环。
for(var key in newObject)
{
if(!newObject.hasOwnProperty(key)) {
continue;
}
oldObject[key] = newObject[key];
}
作为旁注,不要将vars称为“new”,而是将其作为一种关键字用于多种语言。 Np如果只是为了这个例子。根据评论中的建议,我在我的示例中将其从new更改为newObject。
正确,需要检查for ... in循环var实际上是新的
答案 1 :(得分:4)
jQuery提供了一个更好的函数调用$ .extend。 例如:
var old_obj = {'a': 3, 'b': 5};
var new_obj = {'a': 999, 'c': 10};
var result = $.extend(old_obj, new_obj);
结果将是
{a: 999, b: 5, c: 10}
答案 2 :(得分:1)
var o = { 'a':3, 'b': 5 };
var n = { 'a': 999, 'c': 10 };
for (var key in n){
o[key]=n[key];
}