JavaScript Set 方法现已纳入 Baseline

您现在可以使用 JavaScript Set methods 执行集合运算,例如 intersection, union 等等。

浏览器支持

  • Chrome:122。 <ph type="x-smartling-placeholder">
  • 边缘:122。 <ph type="x-smartling-placeholder">
  • Firefox:127。 <ph type="x-smartling-placeholder">
  • Safari:17. <ph type="x-smartling-placeholder">

来源

在任何编程语言中,集都是必不可少的数据结构。现在,您可以 使用 JavaScript 的内置方法执行 set 操作。化身游戏阵容,化繁为简 操作:

intersection()

intersection() 返回一个新的集合,其中包含此集合和指定集合中的元素。

const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.intersection(squares)); // Set(2) { 1, 9 }

union()

union() 用于返回一个新的集合,其中包含此集合和指定集合中的所有元素。

const evens = new Set([2, 4, 6, 8]);
const squares = new Set([1, 4, 9]);
console.log(evens.union(squares)); // Set(6) { 2, 4, 6, 8, 1, 9 }

difference()

difference() 返回一个新的集合,其中包含此集合中的元素,但不包含给定集合中的元素。

const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.difference(squares)); // Set(3) { 3, 5, 7 }

symmetricDifference()

symmetricDifference() 返回一个新的集合,其中包含位于该集合或指定集合中的元素 而不是两者都设置。

const evens = new Set([2, 4, 6, 8]);
const squares = new Set([1, 4, 9]);
console.log(evens.symmetricDifference(squares)); // Set(5) { 2, 6, 8, 1, 9 }

isSubsetOf()

isSubsetOf() 会返回一个布尔值,表明此集合的所有元素是否都在给定集合中。

const fours = new Set([4, 8, 12, 16]);
const evens = new Set([2, 4, 6, 8, 10, 12, 14, 16, 18]);
console.log(fours.isSubsetOf(evens)); // true

isSupersetOf()

isSupersetOf() 会返回一个布尔值,表明指定集合中的所有元素是否都在此集合中。

const evens = new Set([2, 4, 6, 8, 10, 12, 14, 16, 18]);
const fours = new Set([4, 8, 12, 16]);
console.log(evens.isSupersetOf(fours)); // true

isDisjointFrom()

isDisjointFrom() 返回一个布尔值,表示该集合是否没有与 给定集合。

const primes = new Set([2, 3, 5, 7, 11, 13, 17, 19]);
const squares = new Set([1, 4, 9, 16]);
console.log(primes.isDisjointFrom(squares)); // true

更新代码以使用内置方法可提升性能并减少 技术债务。