给定两个对象,如何基于另一个更新一个对象属性

时间:2012-12-19 18:43:54

标签: javascript jquery

我正在尝试根据另一个对象的属性来匹配更新对象的属性。属性名称必须匹配。我想要实现的一个非常简单的例子如下:

给出两个对象:

var obj1 = {
   one: "1",
   two: "2",
   three: {
            threeDotOne: "3.1",
            threeDotTwo: "3.2",
            threeDotAny: "3.3"
          }
}

var obj2 = {threeDotAny: "3.4"}

updateObjectOneProperty(obj1,obj2)

,结果如下:

var obj1 = {
   one: "1",
   two: "2",
   three: {
            threeDotOne: "3.1",
            threeDotTwo: "3.2",
            threeDotAny: "3.4"
          }
}

这里我假设在obj1中只有一个具有这样名字的属性,这很好。

有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:2)

jQuery的$.extend可以做到:

http://jsfiddle.net/vjCvM/

var obj1 = {
    one: "1",
    two: "2",
    three: {
        threeDotOne: "3.1",
        threeDotTwo: "3.2",
        threeDotAny: "3.3"
    }
}

var obj2 = {
    threeDotAny: "3.4"
}

$.extend(obj1.three, obj2);

如果您希望能够在不指定obj1.three的情况下执行此操作,three将需要成为obj2的属性,否则无法知道将其放在何处。