polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
37 lines (36 loc) • 857 B
text/typescript
export class SetUtils {
static union<T extends string | number>(set0: Set<T>, set1: Set<T>): Set<T> {
const newSet: Set<T> = new Set();
set0.forEach((val) => newSet.add(val));
set1.forEach((val) => newSet.add(val));
return newSet;
}
static intersection<T extends string | number>(set0: Set<T>, set1: Set<T>): Set<T> {
const newSet: Set<T> = new Set();
set0.forEach((val) => {
if (set1.has(val)) {
newSet.add(val);
}
});
set1.forEach((val) => {
if (set0.has(val)) {
newSet.add(val);
}
});
return newSet;
}
static difference<T extends string | number>(set0: Set<T>, set1: Set<T>): Set<T> {
const newSet: Set<T> = new Set();
set0.forEach((val) => {
if (!set1.has(val)) {
newSet.add(val);
}
});
set1.forEach((val) => {
if (!set0.has(val)) {
newSet.add(val);
}
});
return newSet;
}
}