Set
Set 类似于数组,本身是一个构造函数,用来生成 Set 数据结构,成员值是唯一且无序的,常用于数组去重
Set 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化
Set 数据结构允许存储任何数据,无论是基本数据类型值或者是对象引用
Set 加入值的时候,不会发生类型转换,所以5和"5"是两个不同的值。Set 内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,它类似于精确相等运算符(===),主要的区别是向 Set 加入值时认为NaN等于自身,而精确相等运算符认为NaN不等于自身。另外,两个对象总是不相等的。
const s = new Set()
// 或
const s = new Set([1,2,3,3,5,4,6])
// Array.from() 方法可以将 Set 结构转为数组
console.log(Array.from(s)) // [1, 2, 3, 5, 4, 6]
// 使用扩展运算符(...)
console.log(...[s]) // [1, 2, 3, 5, 4, 6]
- 属性和方法
size
返回Set
实例的成员总个数add()
添加值,返回Set
结构本身delete()
删除值,返回一个布尔值,表示删除是否成功has()
返回一个布尔值,表示该值是否为Set
的成员clear()
清除所有成员,没有返回值const s = new Set() s.add(8) s.add(9) s.size // 2 s.delete(8) s.size // 1 s.has(8) // false s.has(9) // true s.clear() s.size // 0
- 遍历操作
Set.prototype.keys()
:返回键名的遍历器