目录
set在很多的面向对象编程语言中(java,c++)中都有。在其它的编程语言中,有个集合(容器)的技术名词,集合包括:数组,set,Map等等,都是属于能够保存很多数据的一个集合。
set类似于数组,但是成员的值都是唯一的,没有重复的值,可以简单的理解为无重复值的数组。
console.dir(Set)
通过consol.dir(Set)查看一下Set的属性
1.定义和创建
Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化
如:
let s1 = new Set([1,2,3,2,1,5,6,7])
console.log(s1); //{1,2,3,,5,6,7}
console.log(s1.size); // 6
咱们就是说,创建一个Set 并且输出s1和s1.size(长度),发现了什么?
发现set去重了,也就是说明了set中成员的值都是唯一的,可以利用此性质完成数组去重的操作.
2.遍历Set(使用for of )
let s1 = new Set([1,2,3,2,1,5,6,7])
for(let item of s1){
console.log(item)
} //1,2,3,5,6,7
3.添加一个元素 set.add( )
let s1 = new Set([1,2,3,2,1,5,6,7])
s1.add(12)
s1.add(2).add(100).add(200)
console.log(s1);
通过add( )添加元素,但是添加一个数组有的元素比如说add(2),由于s1中本身就已经有了 2 了所以添加无效.
add( )返回的是set本身,,所以可以多个add( )连用添加元素
4.删除元素
let s1 = new Set([1,2,3,2,1,5,6,7])
s1.delete(2)
删除了s1中的2
5.判断存在性
s1.has(3) //判断3是不是在s1中 ,返回一个布尔值,表示该值是否为Set的成员
6.清除
s1.clear() //清除所有成员,没有返回值
7.利用Set特性封装数组去重
function noRepeat(arr){
let s1 = new Set(arr);
let arr2 = [];
for(let i of s1){
arr2.push(i);
}
return arr2;
}