tc39 / proposal-set-methods

Proposal for new Set methods in JS

Home Page:https://tc39.github.io/proposal-set-methods/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 3.

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.

Implementations

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

There are two outstanding issues dealing with edge cases to be discussed at the July plenary, which may ultimately result in slightly tweaked behavior: #84 and #98. These are not expected to cause compat issues.

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

About

Proposal for new Set methods in JS

https://tc39.github.io/proposal-set-methods/

License:Other


Languages

Language:HTML 100.0%