如何在 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]; }
有关详细信息,请参阅:How can I merge properties of two JavaScript objects dynamically?
试试这个
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);
您也可以使用 Underscore.JS 中的 _.extend() 方法。请参阅 http://underscorejs.org/#extend
中的详细信息
它是一个小巧而强大的 JavaScript 辅助函数库。
如果您想接收一个同时具有 objA 和 objB 属性的新对象,我想您可以使用如下函数:
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 中合并 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]; }
有关详细信息,请参阅:How can I merge properties of two JavaScript objects dynamically?
试试这个
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);
您也可以使用 Underscore.JS 中的 _.extend() 方法。请参阅 http://underscorejs.org/#extend
中的详细信息它是一个小巧而强大的 JavaScript 辅助函数库。
如果您想接收一个同时具有 objA 和 objB 属性的新对象,我想您可以使用如下函数:
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!