0

How can I merge objects' properties into an object in Javascript/JQuery ?

I have the following two objects, obj & obj2:

var obj = {
   a: '1',
   b: '2'
}

var obj2 = {
   c: '3',
   d: '4'
}

I would like to merge them into something like this:

var obj = {
   a: '1',
   b: '2',
   c: '3',
   d: '4'
}

Any help would be greatly appreciated! Thanks!

Elfentech
  • 747
  • 5
  • 10
user3346088
  • 109
  • 1
  • 7

5 Answers5

1
var obj = $.extend({},obj,obj2);

Fiddle

Muhammad Zeeshan
  • 8,722
  • 10
  • 45
  • 55
1

You can use jquery.extend(), it merges the contents of two or more objects together into the first object

$.extend(obj, obj2);

DEMO

Satpal
  • 132,252
  • 13
  • 159
  • 168
0

Working Fiddle

CODE:

function merge(obj1,obj2){
var obj3 = {};
for (var attrname in obj1) { obj3[attrname] = obj1[attrname]; }
for (var attrname in obj2) { obj3[attrname] = obj2[attrname]; }
return obj3;
}
var obj = {
a: '1',
b: '2'
}

var obj2 = {
c: '3',
d: '4'
}
alert(merge(obj,obj2)["a"]);
alert(merge(obj,obj2)["b"]);
alert(merge(obj,obj2)["c"]);
alert(merge(obj,obj2)["d"]);
Furquan Khan
  • 1,586
  • 1
  • 15
  • 30
0

You can use reduction to merge many objects:

function merge() {
  return [].reduce.call(arguments, function(a,e) {
    for (var i in e) a[i] = e[i];
    return a;
  },{});
}

var a = {a:'a'};
var b = {b:'b'};
var c = {c:'c'};

merge(a,b,c); //=> {a:'a', b:'b', c:'c'}
elclanrs
  • 92,861
  • 21
  • 134
  • 171
0

Try this:--

var dT_1 = '{"a": "1", "b":"2"}';
var dT_2 = '{"c": "3", "d":"4"}';

var jD_1 = JSON.parse(dT_1);
var jD_2 = JSON.parse(dT_2);

var obj = $.extend({},jD_1,jD_2); // Object {a: "1", b: "2", c: "3", d: "4"} 
Alok Anand
  • 3,346
  • 1
  • 20
  • 17