Skip to content
This repository was archived by the owner on Jul 8, 2024. It is now read-only.

tc39/proposal-set-methods

Folders and files

NameName
Last commit message
Last commit date

Latest commit

42c5479 · Jul 6, 2024
Sep 16, 2022
Jul 6, 2024
Sep 16, 2022
Jul 15, 2017
Jun 25, 2024
Mar 22, 2023
Sep 17, 2022
Dec 13, 2018
Sep 17, 2022
Jul 18, 2023
Jul 18, 2023
Sep 17, 2022

Repository files navigation

Set Methods for JavaScript

This is a proposal to add methods like union and intersection to JavaScript's built-in Set class.

It is currently at stage 4: it has been added to the specification. This repository is no longer active.

Original readme follows.

Proposal

This would add the following methods:

  • Set.prototype.intersection(other)
  • Set.prototype.union(other)
  • Set.prototype.difference(other)
  • Set.prototype.symmetricDifference(other)
  • Set.prototype.isSubsetOf(other)
  • Set.prototype.isSupersetOf(other)
  • Set.prototype.isDisjointFrom(other)

These methods would all require their arguments to be a Set, or at least something which looks like a Set in terms of having a numeric size property as well as keys and has methods.

See details.md for details of current decisions made in this proposal.

Rendered spec text is available here.

The proposal was originally authored by Michał Wadas and later championed by Sathya Gunasekaran and Kevin Gibbons.

Implementations

This proposal is ready for engines to implement and ship. See this issue for current status.

TC39 meeting notes

(Semi)relevant previous discussions

Comparison with other languages

See other languages document to get overview of Set methods in other languages.

Naming

See naming bikeshedding document for details.

We decided to choose:

  • Symmetric difference - symmetricDifference
  • Intersection - intersection
  • Union - union
  • Difference - difference

Polyfills