UNPKG

es-toolkit

Version:

A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.

30 lines (29 loc) 940 B
//#region src/set/map.ts /** * Creates a new Set with elements transformed by the provided function. * * This function takes a Set and a function that generates a new value from each element. * It returns a new Set where the elements are the result of applying the function to each element. * * @template T - The type of elements in the input Set. * @template U - The type of elements in the output Set. * @param set - The Set to transform. * @param getNewValue - A function that generates a new value from an element. * @returns A new Set with transformed elements. * * @example * const set = new Set([1, 2, 3]); * const result = map(set, (value) => value * 2); * // result will be: * // Set(3) { 2, 4, 6 } */ function map(set, getNewValue) { const result = /* @__PURE__ */ new Set(); for (const value of set) { const newValue = getNewValue(value, value, set); result.add(newValue); } return result; } //#endregion export { map };