Javascript Set 2024新增方法
更新于 阅读 18 次
记录2024年Set
新增的方法,目前主流浏览器的最新版本均支持这些方法,可通过caniuse查看。
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 }
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 }
isDisjointFrom
检测集合与给定集合存在不相同的元素,不存在返回true
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
isSubsetOf
检测集合是否为给定集合的子集,是返回true
。
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
检测集合是否包含给定集合的所有元素,是返回true
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
下面不完全包含,返回了false
const primes = new Set([2, 3, 5, 7, 11, 13, 17, 19]); const odds = new Set([3, 5, 7, 9, 11, 13, 15, 17, 19]); console.log(odds.isSupersetOf(primes)); // false
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 }
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 }
PS:这些新增方法一定程度减少编程时业务代码的复杂度,但如果要支持低版本浏览器,还是使用常见的工具库比较保险。