Skip to content

Instantly share code, notes, and snippets.

@ntnyq
Last active September 6, 2019 09:46
Show Gist options
  • Save ntnyq/323406eea0af8df945ab8fa16b19fea9 to your computer and use it in GitHub Desktop.
Save ntnyq/323406eea0af8df945ab8fa16b19fea9 to your computer and use it in GitHub Desktop.
Merge object deeply
const deepMerge = (target = {}, origin = {}) => {
const toString = Object.prototype.toString;
for (let prop in origin) {
let originProp = origin[prop],
targetProp = target[prop];
if (typeof originProp === 'object') {
if (toString.call(originProp) === '[object Object]') {
target[prop] = {};
} else if(toString.call(originProp) === '[object Array]') {
target[prop] = [];
}
deepClone(targetProp, originProp);
} else {
targetProp = originProp;
}
}
return target;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment