smart-merge
Version:
Deep merge any number of javascript objects.
25 lines (21 loc) • 523 B
JavaScript
;
function isObject(o) {
return o.toString() === '[object Object]' ? true : false;
}
function quickMerge(a, b) {
a = a || {};
for (var i in b) {
if (isObject(b[i])) {
a[i] = quickMerge(a[i], b[i]);
} else {
a[i] = b[i];
}
}
return a;
}
module.exports = function merge(obj, base, secondary) {
var args = [].slice.call(arguments);
return args.reduce(function(acc, current, i) {
return quickMerge(acc, current);
}, {});
};