How to find differences between two JavaScript arrays of objects? How to find differences between two JavaScript arrays of objects? arrays arrays

How to find differences between two JavaScript arrays of objects?


You could filter the keys and get a result set with the updated keys.

var orig = [{ enabled: "true", name: "Obj1", id: 3 }, { enabled: "true", name: "Obj2", id: 4 }],    update = [{ enabled: "true", name: "Obj1", id: 3 }, { enabled: "true", name: "Obj2-updated", id: 4 }],    difference = [];orig.forEach(function (a, i) {    Object.keys(a).forEach(function (k) {        if (a[k] !== update[i][k]) {            difference.push({ id: update[i].id, key: k, value: update[i][k], index: i });        }    });});console.log(difference);


Assuming, that the property names of both are identical and the values are just primitives (no objects, arrays etc.):

Object.keys( orig )      .forEach( (key) => {        if( orig[ key ] !== update[ key ] ) {          console.log( update[key] );        }      });


Use Object.keys to cycle through your object. Something like:

var orig = {  enabled: "true",  name: "Obj1",  id: 3};var update = {  enabled: "true",  name: "Obj1-updated",  id: 3};var diff = {};Object.keys(orig).forEach(function(key) {  if (orig[key] != update[key]) {    diff[key] = update[key];  };})console.log(diff);