let existing = [1, 2, 3, 5, 67];
let removedIds = [];
let addedIds = [];
function add(newIdsToAdd) {
let newWidgets = newIdsToAdd.filter(key => !existing.includes(key));
let _removeList = removedIds.filter(key => !newIdsToAdd.includes(key));
let check = addedIds.some(key => newIdsToAdd.includes(key));
if (!check) {
addedIds.push(...newWidgets);
}
}
function remove(idsToRemove) {
let removeIds = idsToRemove.filter(key => existing.includes(key));
let _addList = addedIds.filter(key => !idsToRemove.includes(key));
let check = removedIds.some(key => idsToRemove.includes(key));
if (!check) {
removedIds.push(...removeIds);
}
console.log("updatedAddeList", _addList);
console.log("removeList", removedIds);
}
function log() {
console.log(
"existing",
existing,
"\nremovedIds",
removedIds,
"\naddedIds",
addedIds
);
}
remove([67]);
add([55, 88]);
add([67]);
add([67]);
remove([2]);
log();