Deep Merge using Lodash Deep Merge using Lodash arrays arrays

Deep Merge using Lodash


You can turn both arrays into objects using _.keyBy(arr, 'label'), and then merge deep using _.merge():

var originalAddresses = [{  label: 'home',  address: {    city: 'London',    zipCode: '12345'  }}, {  label: 'work',  address: {    city: 'New York',    zipCode: '54321'  }}];var updatedAddresses = [{  label: 'home',  address: {    city: 'London (Central)',    country: 'UK'  }}, {  label: 'spain',  address: {    city: 'Madrid',    zipCode: '55555'  }}];var result = _.values(_.merge(  _.keyBy(originalAddresses, 'label'),  _.keyBy(updatedAddresses, 'label')));console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>