本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/06/22/JavaScript%E4%B8%AD%E7%9A%84Set/
摘要
本文主要讲述了:
- 什么是 Set
- 实例属性
- 原型方法
- 类型转换
正文
什么是 Set
对集合的实现,是 ES2015 新增的一种引用类型。
由于集合中的元素具有唯一性,因此Set
中的各个值都是独一无二的
示例:
1 | const foo = new Set(); |
在添加元素时,集合需要进行相等判断,这里使用的是SameValueZero
算法。
即在Object.is()
的基础上,把0
和-0
视作相等。
示例:
1 | // 只存在一个NaN |
由于Set
实现了Set.prototype[Symbol.iterator]
,因此可以被for...of
迭代。此外,迭代的顺序和插入的顺序是相同的。
示例:
1 | const foo = new Set(); |
实例属性
size
大小
原型方法
add()
在集合中添加元素,返回集合本身
has()
判断集合中是否存在此元素
delete()
从集合中删除元素
- 如果删除成功,返回
true
- 如果删除失败,返回
false
clear()
清空集合
forEach()
遍历集合中的值
示例:
1 | const foo = new Set(); |
keys()
返回包含键名的迭代器对象
注意:Set
中的键名和键值相等
values()
返回包含键值的迭代器对象
注意:Set
中的键名和键值相等
entries()
返回包含有键名和键值组成的数组的迭代器对象
注意:Set
中的键名和键值相等
示例:
1 | const foo = new Set(); |
类型转换
其他类型转换成 Set
Array
1 | new Set([1, 2, 3, 1, 2, 3]); |
Set 转换成其他类型
Array
1 | Array.from(new Set().add(1).add(2).add(3)); |
或
1 | [...new Set().add(1).add(2).add(3)]; |
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/06/22/JavaScript%E4%B8%AD%E7%9A%84Set/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2020/06/22/JavaScript%E4%B8%AD%E7%9A%84Set/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。