一。怎么用:
1.和数组比较,数组是一系列有序的数据集合,Set是无序、没有重复值的数据集合
2.数组的创建有两种字面量和new Array(1,2,3),set只能通过new Set()创建set实例;格式是{数据成员,数据成员...}
const s = new Set(); s.add(1);
console.log(s.add(1))//{1}返回的是添加过成员的s s.add(2);/add方法每次只能加一个 s.add(1);//没有重复值 console.log(s);//{1, 2}
二。方法
1.add方法
const s = new Set(); s.add(1).add(2).add(3);//可以连续打点调用 console.log(s);
2。has方法
const s = new Set(); s.add(1).add(2).add(3); console.log(s); console.log(s.has(1));//true 看里面是否有1这个成员
3.delete、clear方法
const s = new Set(); s.add(1).add(2).add(3); console.log(s); s.delete(1);//删除成员1 注意删除不存在的成员什么也不会发生; console.log(s);//{2, 3} s.clear(); console.log(s);//{size: 0} 清空成员
4.forEach方法,有两个参数,第一个是回调函数,第二个参数可以指定回调函数中的this,第二个参数不写默认是undefined
const s = new Set(); s.add(1).add(2).add(3); s.forEach(function (value, key, set) { console.log(value, key, set); console.log(this); }, document)
打印如下:
①根据遍历顺序(成员添加进集合的先后),value依次代表遍历到的每个成员,key也是依次代表遍历到的每个成员;set参数就是代表s本身(同一引用地址);
②这些名字可以用别的,这只是形参名;这三个参数可以省略,但是顺序是定死的,参数列表中第一个参数:永远是依次代表遍历到的每个成员;参数列表中第二个参数:永远也是依次代表遍历到的每个成员;参数列表中第三个参数:永远代表调用这个方法的Set实例(同一引用地址);
③如果回调函数写成箭头函数,由于箭头函数没有自己的this,所以第二个参数指定回调函数中的this无效,会根据箭头函数查找this的方式去查找this
标签:ES6,Set,console,log,add,参数,new From: https://www.cnblogs.com/zhoushangquan/p/17042772.html