UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

33 lines (31 loc) 887 B
import { dfdlT } from "@monstermann/dfdl"; //#region src/set/difference.ts /** * `difference(target, source)` * * Returns a new set containing all values from the `target` set that are not present in the `source` set. * * ```ts * difference(new Set([1, 2, 3]), new Set([2, 3, 4])); // Set([1]) * difference(new Set([1, 2]), new Set([3, 4])); // Set([1, 2]) * ``` * * ```ts * pipe(new Set([1, 2, 3]), difference(new Set([2, 3, 4]))); // Set([1]) * pipe(new Set([1, 2]), difference(new Set([3, 4]))); // Set([1, 2]) * ``` */ const difference = dfdlT((target, source) => { if (source.size === 0) return target; for (const value of target) if (source.has(value)) { const result = /* @__PURE__ */ new Set(); for (const value$1 of target) { if (source.has(value$1)) continue; result.add(value$1); } return result; } return target; }, 2); //#endregion export { difference };