Skip to content

Instantly share code, notes, and snippets.

@neyasbltb88
Created January 5, 2022 15:00
Show Gist options
  • Save neyasbltb88/4133597dadf3a84971ca7ce382967aed to your computer and use it in GitHub Desktop.
Save neyasbltb88/4133597dadf3a84971ca7ce382967aed to your computer and use it in GitHub Desktop.
findDiffObjects
let findDiffObjects = (newObj, oldObj) => {
let newObjSet = new Set(Object.keys(newObj));
let oldObjSet = new Set(Object.keys(oldObj));
let common = {};
let added = {};
let removed = {};
newObjSet.forEach(key => {
let value = newObj[key];
let result = !oldObjSet.has(key);
if(result) added[key] = value;
// Попутно соберем общие элементы, которые есть и в старом и в новом массивах
if (!result && newArrSet.has(key)) common[key] = value;
});
oldObjSet.forEach(key => {
let value = oldObj[key];
let result = !newObjSet.has(key);
if(result) removed[key] = value;
});
return { added, removed, common };
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment