UNPKG

rc-js-util

Version:

A collection of TS and C++ utilities to help writing performant and correct applications, achieved through strict typing and (removable) invariant checking.

25 lines 924 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.arrayUnion = void 0; const fp_identity_js_1 = require("../../fp/impl/fp-identity.js"); const map_values_to_array_js_1 = require("../../map/impl/map-values-to-array.js"); /** * @public * Given an `ArrayLike` of `ArrayLike`, provides all unique items in an `Array`. * * @remarks * See {@link arrayUnion}. */ function arrayUnion(items, getComparisonValue = fp_identity_js_1.fpIdentity) { const result = new Map(); for (let i = 0, iEnd = items.length; i < iEnd; ++i) { const innerItems = items[i]; for (let j = 0, jEnd = innerItems.length; j < jEnd; ++j) { const item = innerItems[j]; result.set(getComparisonValue(item, j), item); } } return (0, map_values_to_array_js_1.mapValuesToArray)(result); } exports.arrayUnion = arrayUnion; //# sourceMappingURL=array-union.js.map