eaz-utils
Version:
A cleverly organized set of utilities to make JavaScript and TypeScript development easier.
17 lines (13 loc) • 351 B
JavaScript
function intersect(...sets) {
if (sets.length === 0) {
return new Set();
}
// Start with the smallest set to optimize performance
const [smallestSet, ...otherSets] = sets.sort((a, b) => a.size - b.size);
return new Set(
[...smallestSet].filter(element =>
otherSets.every(set => set.has(element))
)
);
}
module.exports = intersect;