diffrence of two objects javascript

import { transform, isEqual, isObject } from 'lodash';

/**
 * Deep diff between two object, using lodash
 * @param  {Object} object Object compared
 * @param  {Object} base   Object to compare with
 * @return {Object}        Return a new object who represent the diff
 */
function difference(object, base) {
	return transform(object, (result, value, key) => {
		if (!isEqual(value, base[key])) {
			result[key] = isObject(value) && isObject(base[key]) ? difference(value, base[key]) : value;
		}
	});
}

4.2
5
Awgiedawgie 440220 points

                                    const { inspect } = require('util')
const transform = require('lodash.transform')
const isEqual = require('lodash.isequal')
const isArray = require('lodash.isarray')
const isObject = require('lodash.isobject')

/**
 * Find difference between two objects
 * @param  {object} origObj - Source object to compare newObj against
 * @param  {object} newObj  - New object with potential changes
 * @return {object} differences
 */
function difference(origObj, newObj) {
  function changes(newObj, origObj) {
    let arrayIndexCounter = 0
    return transform(newObj, function (result, value, key) {
      if (!isEqual(value, origObj[key])) {
        let resultKey = isArray(origObj) ? arrayIndexCounter++ : key
        result[resultKey] = (isObject(value) && isObject(origObj[key])) ? changes(value, origObj[key]) : value
      }
    })
  }
  return changes(newObj, origObj)
}

/* Usage */

const originalObject = {
  foo: 'bar',
  baz: 'fizz',
  cool: true,
  what: {
    one: 'one',
    two: 'two'
  },
  wow: {
    deep: {
      key: ['a', 'b', 'c'],
      values: '123'
    }
  },
  array: ['lol', 'hi', 'there']
}

const newObject = {
  foo: 'bar',
  baz: 'fizz',
  cool: false, // <-- diff
  what: {
    one: 'one',
    two: 'twox' // <-- diff
  },
  wow: {
    deep: {
      key: ['x', 'y', 'c'], // <-- diff
      values: '098' // <-- diff
    }
  },
  array: ['lol', 'hi', 'difference'] // <-- diff
}

// Get the Diff!
const diff = difference(originalObject, newObject)

console.log(inspect(diff, {showHidden: false, depth: null, colors: true}))
/* result:
{
  cool: false,
  what: { two: 'twox' },
  wow: { deep: { key: [ 'x', 'y' ], values: '098' } },
  array: [ 'difference' ]
}
*/

if (diff.cool) {
  console.log('Coolness changed to', diff.cool)
}

4.2 (5 Votes)
0
Are there any code examples left?
Create a Free Account
Unlock the power of data and AI by diving into Python, ChatGPT, SQL, Power BI, and beyond.
Sign up
Develop soft skills on BrainApps
Complete the IQ Test
Relative searches
javascript how to find difference in objects javascript compare difference between two objects difference between 2 objects javascript javascript find the difference between two objects two object difference js get difference between 2 objects javascript find differences between two objects javascript javascript object difference js diferrence between two objects js find what is difference between two objects how to get difference between two objects in javascript javascript get differences between two objects js difference between objects diff between two object in js how to compare two different objects in javascript and get differences js find differences between two objects values js find differences between two objects js differcen between 2 objects find difference between two objects in javascript javascript diff of two objects diff 2 object javascript javascript difference in two objects difference between two objects javascript js difference between two objects javascript diff two objects compare two objects for differences javascript compare two objects and return the difference javascript compare two objects and get differences javascript how to compare two objects in javascript and get differences typescript get difference between two objects get diff of objects javascript how to find difference between two objects in javascript diff objects in javascript angular difference between objects angular compare objects diff how to output the difference in two js objects compare two objects length and return the difference javascript find objects differences javascript find objects differences js check object difference online javascript objects difference diff between 2 js data diffbetween 2 js bojects check difference between two nested objects js javascript compare 2 objects and get differences what the difference between . and [] in object in js get value changes two objects js get value changes two objects javascript getting the different fields between two objects node js check diff between objects Node.js many objects vs JS objects diff js get diff of nested objects === between two objects value or reference compare 2 json objects javascript lodash how to concate between two objects js javascript variable switch between two objects diff between two objects +benchmark diff between two objects benchmark diff between two objects diff between two objects javascript lodash compare objects by key get the difference between two objects js use two objects in find one function compare two objects lodash javascript typescript compare two objects find changes in json object js compare two objects and find the differences javascript js compare var in json get difference between two objects as object javascript javascript how to compare object difference "typescript" object diff typescript diff objects compare two objects javascript lodash javascript difference between objects get object difference javascript javascript compare object key values compare differences between two objects js object see differences between two get value that is difference between two objects javascript diff 2 objects javascript js find difference properties values js find difference properties between objects get diff between objects js how to compare objects and return the difference javascript javascript object difference get differences in 2 objects js js get difference between two objects deep js get the diff between 2 objects deep check the difference in key values between objects javscript difference between two objects return difference between two objects javascript difference between two objects get differences between two objects js js diff between objects diff objects javascript javascript compare two objects return difference diffrence of two objects javascript javascript new object includes changes and between two objects new object includes changes and between two objects javascript difference of two objects fidn diff of 2 object and update the new one compare two javascript objects for changes recat get difernece betwweb object js diff objects js diff on two js objects object difference diff of object javascript see changes in two objects js javascript get data difference between two objects Js compare to objects and return the difference js show difference between objects show change between two objects node show difference of 2 objects js find objects difference differences between to object javascript differences between two objects node diff two objects get difference between two objects javascript see diffrence in 2 objects node check for changes in two objects javascript es6 deep diif same array deep-diff array order diffing two objects js diffing two object javascript find difference between two objects get two object difference js check two object differences ts check two object differences js get the delta between two objects js javascript check if object is different and get difference generate difference object in javascript see object difference two objects log the difference typescript two objects log the difference js find differences between objects get diff of object js diff javascript object get updated diff javascript object get update diff javascript objects diff value tow object js how to find the difference between two objects in vuejs how to find the difference between two objects in javascript compare 2 object and get diffrence javascript difference of objects diff two objects javascript find difference between two objects javascript object check for differences find difference between two objects js javascript compare complex objects and get differences see difference between two objects js how to find object diff javascript find differences between two objects diff between objects js find not deep difference between two objects js find difference between two objects js object difference javascript difference between two objects javascript compare objects difference object difference javascript difference between objects and hash tale draw line between two objects and track distance between them What are the advantages and disadvantages of using Views in sql get object difference js javascript compare two objects and get differences javascript javascript compare two objects and get differences javascript get difference between two objects javascript object difference "[]" "." javascript check difference between two objects javascript compare two objects for changes get values which are different between two object Getting the differences between two objects javascript lib
Made with love
This website uses cookies to make IQCode work for you. By using this site, you agree to our cookie policy

Welcome Back!

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign up
Or sign up with
By signing up, you agree to the Terms and Conditions and Privacy Policy. You also agree to receive product-related marketing emails from IQCode, which you can unsubscribe from at any time.
Creating a new code example
Code snippet title
Source