如何在javascript中合并2个对象
How can I merge 2 object in javascript?
如何在javascript中合并2个对象?例如,如果objB.a2不存在,则objB.a2 = objA.a2
objA = {
a1:
a2:
a3:
}
objB = {
a1:
a3:
}
for (var k in objB) {
if (typeof objB[k] === 'undefined') {
// objB[k] =
}
}
使用jQuery,您可以执行以下操作:
$.extend(objB, objA);
这将把objA
的所有属性合并到objB
中。要将它们合并为一个全新的对象,请执行以下操作:
var objC = {};
$.extend(objC, objA, objB);
没有jQuery,您可以这样做(这将把objA
的属性添加到objB
):
for (var attrname in objA) { objB[attrname] = objA[attrname]; }
有关更多详细信息,请参阅:如何动态合并两个JavaScript对象的属性?
试试这个
function merge(obj1,obj2){
var obj3 = {}, prop;
for (prop in obj1) {
obj3[prop] = obj1[prop];
}
for (prop in obj2) {
obj3[prop] = obj2[prop];
}
return obj3;
}
merge(obj1, obj2);
您也可以使用Undercore.JS中的_.extend()方法。请参阅中的详细信息http://underscorejs.org/#extend
它是一个小而强大的助手函数JavaScript库。
如果你想接收一个同时具有objA和objB属性的NEW对象,我想你可以使用这样的函数:
objA = {
a1: 1,
a2: 2,
a3: 3
}
objB = {
a1: 4,
a4: 5
}
function merge(objA, objB){
var o = {};
for (prop in objA) //copy objA props to new object
o[prop] = objA[prop];
for (prop in objB) { //copy objB props to new object
if (o[prop] === undefined) //check if the property name is used already
o[prop] = objB[prop]; // if the prop name is not used - assign it
}
return o;
};
console.log(merge(objA, objB)); //check the result!
相关文章:
- 如何使用javascript合并两个对象数组
- 别名或以其他方式合并两个具有不同名称的相同对象原型
- 如何在javascript中合并两个对象数组
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- 如何使用jQuery合并两个json对象
- 合并两个剪辑区域-詹姆斯·邦德枪管
- 合并 2 个 JS 脚本 - 老派
- 合并两个对象而不覆盖
- 在kibana3/elastic.js中合并两个过滤器
- 合并两个嵌套的JSON数组
- 如何在javascript中合并2个对象
- 合并两个Javascript数组,一次合并三个元素
- 有没有一个lodash函数可以合并两个对象并删除其中一个对象的属性(如果它们没有)'不存在于另一个中
- 是否有任何功能可以合并两个JSON数据集并替换旧信息?(节点.JS)
- Angularjs合并两个忽略null和缺失值的对象
- AngularJS,合并2个资源的服务
- javascript中是否存在可以合并多个对象的函数或方法
- Javascript 数组:合并 2 个具有优先级的数组
- 在 JavaScript 中合并两个对象
- 如何在培根中合并两个属性.js