Proposal: SuperSet

# Oğuz Kılıç (8 days ago)

As you know, the current Set feature is not sufficient in some aspects. We benefit from utility libraries or special implementations to fill this deficiency.

For example, wouldn’t it be better if we had the following approach?

UNION

X ∪ Y = { x | x ∈ X or x ∈ Y }
let first = new SuperSet(["a", "b", "c"]);
let second = new SuperSet(["b", "c", "d", "e"]);

first.union(second); //→ SuperSet { "a", "b", "c", "d", "e" }

DIFFERENCE

X - Y = { x | x ∈ X and x ∉ Y }
let nums = new SuperSet([3, 4, 5, 6]);
let primes = new SuperSet([2, 3, 5, 7]);

nums.diff(primes); // → SuperSet { 4, 6 }

INTERSECT

X ∩ Y = { x | x ∈ X and x ∈ Y }
let nums = new SuperSet([3, 4, 5, 6]);
let primes = new SuperSet([2, 3, 5, 7]);
nums.intersect(primes); // → SuperSet { 3, 5 }

DISCARD

let nums = new SuperSet([1, 2, 3, 4]);
nums.discard([1, 3]); // → SuperSet { 2, 4 }

Motivation SuperSet - BYK/superset

# Григорий Карелин (8 days ago)

Maybe add those methods into Set instead of creating new type?

# Oğuz Kılıç (8 days ago)

Yes, I already consider it as an enriched version of the current set method, I just like calling it superset :)

# Jordan Harband (8 days ago)

Are you perhaps looking for tc39/proposal-set-methods ?

# Oğuz Kılıç (8 days ago)

yes. Sorry for not looking in detail.

Thanks.