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);