19 lines
446 B
JavaScript
19 lines
446 B
JavaScript
import {InternSet} from "internmap";
|
|
|
|
export default function intersection(values, ...others) {
|
|
values = new InternSet(values);
|
|
others = others.map(set);
|
|
out: for (const value of values) {
|
|
for (const other of others) {
|
|
if (!other.has(value)) {
|
|
values.delete(value);
|
|
continue out;
|
|
}
|
|
}
|
|
}
|
|
return values;
|
|
}
|
|
|
|
function set(values) {
|
|
return values instanceof InternSet ? values : new InternSet(values);
|
|
}
|