Set 是 ES6 中新增的一种集合数据类型,它可以存储任何类型的唯一值,且无序不可重复。在 ES9 中,Set 集合的功能得到了进一步的增强,今天我们就来详细了解一下在 ES9 中如何使用 Set 集合。
一、Set 常用方法
在 ES9 中,Set 实例新增了如下五个方法。
1. Set.prototype.union(set)
将当前 Set 实例与另一个 Set 实例合并,返回一个新的 Set 实例。
----- ---- - --- ------- -- ---- ----- ---- - --- ------- -- ---- ----- ---- - ----------------- ------------------ -- --- --- -- -- -- -- --
2. Set.prototype.intersection(set)
获取当前 Set 实例和另一个 Set 实例的交集,返回一个新的 Set 实例。
----- ---- - --- ------- -- ---- ----- ---- - --- ------- -- ---- ----- ---- - ------------------------ ------------------ -- --- --- --
3. Set.prototype.difference(set)
获取当前 Set 实例除了与另一个 Set 实例重复的值之外的所有值,返回一个新的 Set 实例。
----- ---- - --- ------- -- -- -- ---- ----- ---- - --- ------- -- ---- ----- ---- - ---------------------- ------------------ -- --- --- -- --
4. Set.prototype.isSuperset(set)
判断当前 Set 实例是否是另一个 Set 实例的父集,返回一个布尔值。
----- ---- - --- ------- -- -- -- ---- ----- ---- - --- ------- -- ---- ----- ---- - --- ------- ---- ----------------------------------- -- ---- ----------------------------------- -- -----
5. Set.prototype.isSubset(set)
判断当前 Set 实例是否是另一个 Set 实例的子集,返回一个布尔值。
----- ---- - --- ------- -- ---- ----- ---- - --- ------- -- -- -- ---- ----- ---- - --- ------- ---- --------------------------------- -- ---- --------------------------------- -- -----
二、Set 的扩展运算符
在 ES6 中,Set 实例没有提供扩展运算符,需要通过 Array.from()
或者 Array.prototype.concat()
将 Set 转换成数组才能使用扩展运算符。但是在 ES9 中,Set 实例新增了扩展运算符,可以直接使用。
----- ---- - --- ------- -- ---- ----- ---- - --- ------- -- ---- ----- ---- - --- ------------- ---------- ------------------ -- --- --- -- -- -- --
三、Set 中的值类型不一致
在 ES9 中,一个 Set 实例中可以存储不同类型的值。
----- --- - --- ------- ---- - ----- ----- ---- ----------------- -- --- --- ---- - ----- ----- --
需要注意的是,虽然 Set 中可以放不同类型的值,但是比较的时候还是按照值的类型进行比较。例如 1
和 '1'
虽然值相同,但是类型不同,所以在 Set 中被视为两个不同的值。
四、Set 中的 NaN 和 undefined
在 ES9 中,Set 实例中可以存储 NaN 和 undefined。
----- --- - --- --------- ------------ -------------------------- -- ---- -------------------------------- -- ----
需要注意的是,Set 内部的 NaN 被视为等于 NaN,undefined 被视为等于 undefined。
五、总结
在 ES9 中,Set 集合的功能得到了进一步的增强,新增了常用方法,并且提供了扩展运算符。在使用 Set 的时候需要注意,Set 的值类型不一致,而且内部的 NaN 和 undefined 需要特别处理。掌握 Set 的用法对于我们编写高效、优雅的代码非常有帮助。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65375dab7d4982a6ebfda777