JSFiddle - React, Tailwind, and code Playground

by ktstowell

JavaScript

var src = {foo: 'foo', bar: {baz: 'baz'}};
var ext = {baz: 'baz', bar: {bang: 'bang'}}
var merge = merge(src, ext);

console.log(merge);

function merge(src, ext) {
  for(var key in ext) {
    if(!ext[key]) { break; }

    if(!src[key]) {
      src[key] = ext[key];
    } else if(src[key].constructor === Object && ext[key].constructor === Object) {
      src[key] = merge(src[key], ext[key]);
    } else {
      src[key] = ext[key];
    }
  }

  return src;
}