@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
41 lines (31 loc) • 823 B
JavaScript
import { assert } from "../../assert.js";
/**
* @template T
* @returns Set<T>
* @param {Set<T>} a
* @param {Set<T>} b
*/
export function compute_set_difference(a, b) {
assert.defined(a, 'a');
assert.defined(b, 'b');
assert.isInstanceOf(a, Set, 'a');
assert.isInstanceOf(b, Set, 'b');
const result = new Set();
const a_array = Array.from(a);
const a_count = a_array.length;
for (let i = 0; i < a_count; i++) {
const t = a_array[i];
if (!b.has(t)) {
result.add(t);
}
}
const b_array = Array.from(b);
const b_count = b_array.length;
for (let i = 0; i < b_count; i++) {
const t = b_array[i];
if (!a.has(t)) {
result.add(t);
}
}
return result;
}