Skip to content

Instantly share code, notes, and snippets.

@rlemon
Created February 8, 2012 15:24
Show Gist options
  • Save rlemon/1770422 to your computer and use it in GitHub Desktop.
Save rlemon/1770422 to your computer and use it in GitHub Desktop.
Deep Object Merge in js
function merge(target, obj) {
var ret = {};
for (var prop in obj) {
if (target.hasOwnProperty(prop) && obj.hasOwnProperty(prop)) {
if (typeof(target[prop]) === "object" && typeof(obj[prop]) === "object") {
ret[prop] = merge(target[prop], obj[prop]);
} else {
ret[prop] = obj[prop];
}
} else if (obj.hasOwnProperty(prop)) {
ret[prop] = obj[prop];
}
}
for (var prop in target) {
if (!(prop in obj) && target.hasOwnProperty(prop)) {
ret[prop] = target[prop];
}
}
return ret;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment