JSFiddle - React, Tailwind, and code Playground

by Eugene Vilder

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js"></script>

JavaScript

const oldValues = {
	a: 1,
  b: [2, 21, 22, 23],
  c: {
  	d: 3,
    e: 4,
    f: [5, 6, 7]
  }
};

const updatedValues = {
	//b: [],
	c: {
  	f: [8]
  }
}

//const result = _.merge( oldValues, updatedValues );
const result = _.mergeWith( oldValues, updatedValues, ( a, b ) =>
                                        _.isArray( b ) ? b : undefined
                                    );
console.log(result);

/* Desire result:

{
  a: 1,
  b: [],
  c: {
    d: 3,
    e: 4,
    f: [8]
  }
} 

*/