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
JavaScript
;
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