JSFiddle - React, Tailwind, and code Playground

by Hugo Carneiro

HTML

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

JavaScript

var dataObj = {}

var original = [{
    id: 1,
    values: {
      foo: 'bar'
    }
  },
  {
    id: 2,
    values: {
      foo: 'bar'
    }
  }
]

var newArray = []

newArray.forEach((wi) => {
  const index = _.findIndex(original, {
    'id': wi.id
  })
  if (index > -1) {
  	original.forEach((item, idx) => {
    	if (index === idx) {
      	_.merge(item, wi)
      }
    })
    
    dataObj.widgetInstances = original
  } else {
    const savedWidgetInstances = original
    savedWidgetInstances.push(wi)
    dataObj.widgetInstances = savedWidgetInstances
  }
})

console.log(dataObj)