如何将javascript对象添加到现有的javascript对象?

时间:2011-07-22 07:17:06

标签: javascript dictionary

var old = { 'a':3, 'b': 5 }
var new = { 'a': 999, 'c': 10 }

如何将“new”附加到“old”并导致:

{ 'a': 999, 'b': 5, 'c': 10 }

3 个答案:

答案 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];
}