Created
January 5, 2022 15:00
-
-
Save neyasbltb88/4133597dadf3a84971ca7ce382967aed to your computer and use it in GitHub Desktop.
findDiffObjects
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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