1、Set的定义
Set是ES6 提供了新的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值,Set本身是一个构造函数,用来生成 Set 数据结构。Set函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化
const set = new Set([1, 2, 3, 4, 4]);
[...set]
// [1, 2, 3, 4]
2、Set实例的属性与方法
- size表示Set的长度
- add(value):添加某个值,返回 Set 结构本身
- delete(value):删除某个值,返回一个布尔值,表示删除是否成功
- has(value):返回一个布尔值,表示该值是否为Set的成员
- clear():清除所有成员,没有返回值
const set = new Set([1, 2, 3, 4, 4])
console.log(set.size)
// 4
const result = set.add(5)
console.log(result)
// { 1, 2, 3, 4, 5 }
console.log(result.delete(5))
// true
console.log(result.has(1))
// true
console.log(result.clear())
console.log(result)
// {}
3、Set的遍历
- keys()
- values()
- entries()
// keys()
const set = new Set(['red', 'green', 'blue'])
for (let item of set.keys()) {
console.log(item)
}
red green blue
// values()
const set = new Set(['red', 'green', 'blue'])
for (let item of set.values()) {
console.log(item)
}
// red green blue
// entries()
const set = new Set(['red', 'green', 'blue'])
for (let item of set.entries()) {
console.log(item)
}
// [ 'red', 'red' ] [ 'green', 'green' ] [ 'blue', 'blue' ]
4、Set的应用
- 数组去重 [...new Set(array)]
const arr = [3, 5, 2, 2, 5, 5]
const unique = [...new Set(arr)]
console.log(unique)
// [ 3, 5, 2 ]
网友评论