I currently have 2 obj and using the jquery extend function, however it’s overriding value from keys with the same name. How can I add the values together instead?
var obj1 = {
"orange": 2,
"apple": 1,
"grape": 1
};
var obj2 = {
"orange": 5,
"apple": 1,
"banana": 1
};
mergedObj = $.extend({}, obj1, obj2);
var printObj = typeof JSON != "undefined" ? JSON.stringify : function (obj) {
var arr = [];
$.each(obj, function (key, val) {
var next = key + ": ";
next += $.isPlainObject(val) ? printObj(val) : val;
arr.push(next);
});
return "{ " + arr.join(", ") + " }";
};
console.log('all together: ' + printObj(mergedObj));
And I get obj1 = {"orange":5,"apple":1, "grape":1, "banana":1}
What I need is obj1 = {"orange":7,"apple":2, "grape":1, "banana":1}
All
$.extenddoes is join the two objects but it doesn’t add the values, it overrides them.You’re going to have to do this manually.
$.extendwill be useful to add or modify fruits to your object but if you need the total sum you gonna have to loop:Demo: http://jsfiddle.net/elclanrs/emGyb/