Scenario:
const obj1 = {
a: 100,
b: 200,
c: { c1: 100 }
}
const obj2 = {
b: 250,
c: { c1: 200 },
d: { d1: { d1a: 400 } }
}
Desired result:
someMergeFn(obj1, obj2)
// Should return...
{
a: [100],
b: [200, 250],
c: { c1: [100, 200] },
d: { d1: { d1a: [400] } }
}
My attempt is below, but I couldn't get close to the desired result.
const obj1 = {
a: 100,
b: 200,
c: { c1: 100 }
}
const obj2 = {
b: 250,
c: { c1: 200 },
d: { d1: { d1a: 400 } }
}
const merged = _.mergeWith(
obj1,
obj2,
(first, second) =>
Array.isArray(first) ? first.push(second) : [first, second]
)
console.log(merged)
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script>