JSFiddle - React, Tailwind, and code Playground

by Chase Wilson

JavaScript

var merge = function(base) {
  var hasBase = (base)?true:false,
      base = base||this,
      remove = hasBase?1:0,
      args = Array.prototype.slice.call(arguments,0),
      count = args.length,
      keys = Object.keys(base)
      i = 0;
    
  var mergeIn = function(base,obj){
    var keys = Object.keys(base);
    for(var key in obj){
      if(obj.hasOwnProperty(key) && keys.indexOf(key) !== -1){
        base[key] = obj[key];
      }
    }
  }
      
  for(;i<count;i++){
    mergeIn(base,args[i]);
  }
  
  return base;
}

console.log(merge.apply({a: 1, b: 3}, [{a:3,b:{a:1},c:2}, {a:4}] ))