Merge objects [Lodash]

by Dawid Ryłko

HTML

<!-- Merge objects [Lodash] -->

<a href="https://dawidrylko.com/nie-pisz-w-kolko-tych-funkcji-wykorzystaj-moc-lodasha/" target="_blank">Łączenie obiektów</a>
<br><br>
<div>Utility method: <pre id="pureJS">...</pre></div>
<div>Lodash: <pre id="lodash">...</pre></div>

JavaScript

// Merge objects [Lodash]

var object1 = {
  a: {
    a1: 'test1',
    a2: 'test2',
  },
  b: {
    b1: 'test3',
    b2: 'test4',
  },
  c: 'test5',
};

var object2 = {
  d: 'test6',
};

// Basic merge function
function merge(test1, test2) {
  var merge = {};

  for (var i in test1) {
    merge[i] = test1[i];
  }
  for (var j in test2) {
    merge[j] = test2[j];
  }

  return merge;
}

// Lodash
var lodash = _.merge(object1, object2);

console.log(merge(object1, object2)); // Object {a: Object, b: Object, c: "test5", d: "test6"}
console.log(lodash); // Object {a: Object, b: Object, c: "test5", d: "test6"}

function stringify(obj) {
	return JSON.stringify(obj, null, 4);
}

document.getElementById("pureJS").innerHTML = stringify(merge(object1, object2));
document.getElementById("lodash").innerHTML = stringify(lodash);