UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

42 lines (40 loc) 797 B
import { dfdlT } from "@monstermann/dfdl"; import { cloneMap } from "@monstermann/remmi"; //#region src/map/reject.ts /** * `reject(map, by)` * * Rejects entries from `map` where `by` returns true for the value. * * ```ts * reject( * new Map([ * ["a", 1], * ["b", 2], * ["c", 3], * ]), * (value) => value > 1, * ); // Map(1) { "a" => 1 } * ``` * * ```ts * pipe( * new Map([ * ["a", 1], * ["b", 2], * ["c", 3], * ]), * reject((value) => value > 1), * ); // Map(1) { "a" => 1 } * ``` */ const reject = dfdlT((target, by) => { let result; for (const [key, value] of target) if (by(value, key, target)) { result ??= cloneMap(target); result.delete(key); } return result ?? target; }, 2); //#endregion export { reject };