All files / set/src symmetricDifference.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 2/2
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 231x 1x                               8x     8x    
import { copy } from "./copy";
import { toggleAll } from "./toggleAll";
import { SetCompatible } from "./_types";
 
/**
 *
 * @example
 * Symmetric difference between two sets
 * ```
 * const setA = new Set([1,2]);
 * const setB = new Set([2,3]);
 * const diff = symmetricDifference(setA, setB);
 * console.log(diff); // Set([1,3])
 * ```
 *
 * @returns
 */
export const symmetricDifference = <T>(
  setA: Set<T>
): ((setB: SetCompatible<T>) => Set<T>) => {
  return toggleAll(copy(setA));
};