合并 Javascript 个对象

Merge Javascript object

我有一个键名未知的对象 1,我需要与其他对象 2 合并。 安全点是 object2 中不存在未知密钥,因此永远不会发生密钥名称冲突。

var object1 = {
 id: 1,
 name: "myname",
 boleanSample : true
}


var object2 = {
 unknownKeyName : "UnknownValue"
}

我想将object2合并到object1中得到这个

var object1 = {
 id: 1,
 name: "myname",
 boleanSample : true,
 unknownKeyName = "UnknownValue"
}

拜托,仅香草 Javascript。 如果响应需要创建一个新的 object3 完全没问题:)

PD:我在 post 问题之前检查了这些链接:

那些完全没有重复:)

Use Object.keys with Array#forEach

var object1 = {
  id: 1,
  name: "myname",
  boleanSample: true,
};

var object2 = {
  unknownKeyName: "UnknownValue" //correct typo here
};
Object.keys(object2).forEach(function(key) {
  object1[key] = object2[key];
});
console.log(object1);

这个合并函数应该可以做到。只记得先添加要追加的对象。

var object1 = {
 id: 1,
 name: "myname",
 boleanSample : true
}


var object2 = {
 unknownKeyName : "UnknownValue"
}

function mergeObjects(a,b){
  for(var bi in b) {
    if(b.hasOwnProperty(bi)) {
      if(typeof a[bi] === "undefined") {
        a[bi] = b[bi];
      }
    }
  }
}
mergeObjects(object1,object2);
console.log(object1);

Step I: loop over the properties.

Step II: try and check if object

Step III: if true, stimulate function on obj[prop] and check, else just take check.

Step IV: if there was an error obj[prop] = check;

Step V: return obj

/*functions*/
function objectConcat(o1, o2) {
  for (var v in o2) {
    try {
      o1[v] = (o2[v].constructor == Object) ? objectConcat(o1[v], o2[v]) : o2[v];
    } catch (e) {
      o1[v] = o2[v];
    }
  }
  return o1;
}

/*objects*/
var object1 = {
  id: 1,
  name: "myname",
  boleanSample: true,
}

var object2 = {
  unknownKeyName: "UnknownValue" /*mistake straighten*/
}

/*code*/

console.log(objectConcat(object2, object1));