特性
- 似于数组,所有元素都是唯一的,没有重复。利用这一唯一特性进行数组的去重工作。
例子
let set0 = new Set([1, 2, 2, 3, 4, 3, 5])
console.log(set6) //Set(4){1, 2, 3, 4, 5}
Set提供了一些方法
- 向Set中添加元素 add()
- 向Set中删除元素delete()
- 是否包含某个元素has()
- 清除所有元素
<!--add用法-->
let set1 = new Set();
set1.add(1);
set1.add(2);
set1.add(3);
console.log(set1) //Set(3){1, 2, 3}
<!--delete用法-->
let set2 = new Set();
set2.add(1);
set2.add(2);
set2.delete(2)
set2.add(3);
console.log(set2) //Set(3){1, 3}
<!--has用法-->
let set3 = new Set()
set3.add(1)
set3.add(2)
set3.add(3)
console.log(set3.has(4))//false
console.log(set3.has(2))//true
<!--clear用法-->
let set4 = new Set()
set4.add(1)
set4.add(2)
set4.add(3)
set4.clear()
console.log(set4)//Set(0){}
Set与Array转换
<!--Array转Set-->
let set5 = new Set([4,5,6])
console.log(set5)//Set(3){4,5,6}
let set6 = new Set(new Array(7, 8, 9))
console.log(set6)//Set(3){7, 8, 9}
<!---Set转Array-->
let set7 = new Set([4,5,6])
console.log([...set7])//[4,5,6]
console.log(Array.from(set7))//[4,5,6]
遍历
可以使用Set实例对象的keys(),values(),entries()方法进行遍历。 由于Set的键名和键值是同一个值,它的每一个元素的key和value是相同的,所有keys()和values()的返回值是相同的,entries()返回的元素中的key和value是相同的。
let set8 = new Set([4, 5, 'hello'])
for(let item of set8.keys()){
console.log(item)//key
}
for(let item of set8.values()){
console.log(item)//value
}
for(let item of set8.entries()){
console.log(item)// [key, value]
}