41 lines
928 B
TypeScript
41 lines
928 B
TypeScript
/**
|
|
* @author Martin Karkowski
|
|
* @email m.karkowski@zema.de
|
|
* @create date 2021-03-11 17:17:50
|
|
* @modify date 2021-03-11 17:17:50
|
|
* @desc [description]
|
|
*/
|
|
|
|
/**
|
|
* Helper Function which will determine the Difference between set01 and set02.
|
|
* If values are in set02 and not in set01 they will be putted into added. If
|
|
* items are in set01 but not in set02 they will be added to removed.
|
|
*
|
|
* @export
|
|
* @template T
|
|
* @param {Set<T>} set01 Base Set
|
|
* @param {Set<T>} set02 Set to compare it with
|
|
* @return {*}
|
|
*/
|
|
export function determineDifference<T>(set01:Set<T>, set02:Set<T>): {
|
|
added: Set<T>,
|
|
removed: Set<T>
|
|
}{
|
|
const added = new Set<T>();
|
|
|
|
const removed = new Set(set02);
|
|
|
|
for (const item of removed) {
|
|
if (!set01.has(item)) {
|
|
added.add(item);
|
|
} else {
|
|
// Delete the element, because it is available.
|
|
removed.delete(item);
|
|
}
|
|
}
|
|
|
|
return {
|
|
added,
|
|
removed
|
|
};
|
|
} |