set集合
用于存放不重复的数据
创建set集合
new Set();//创建一个没有任何内容的set集合
new Set(iterable);//创建一个有内容的set集合,来自于可迭代对象每一次迭代的结果
如何后续操作
- add(数据):添加一个数据到set末尾,如果已存在,则不操作
- has(数据):判断set中是否存在对应的数据,set使用Object.is的方式判断两个数据是否相同,但是对于+0和-0,认为相等
- delete(数据):删除匹配的数据,返回是否删除成功
- clear():清空set集合
- size():获取set集合中的元素数量,只读
如何遍历
- 使用for of循环
- 使用set中的方法forEach,set中不存在下标,所以回调函数中的第一个和第二个参数都表示set中的每一项
例子
1.创建set集合
const s1 = new Set();
console.log(s1);
const s2 = new Set('abcdefg');
2.后续操作
const s1 = new Set();
s1.add(1);
s1.add(2);
s1.add(3);
s1.add(4);
s1.add(5);
s1.add(6);
s1.add(1);//无效
s1.add(+0);
s1.add(-0);//无效
for(const item of s1){
console.log(item);
}
s1.forEach((item, index, s)=>{
console.log(item, index, s); //item index都代表某项 s代表自身
})
console.log(s1);
console.log('总数为:', s1.size);
console.log(s1.has(1));
console.log(s1.delete(2));
3.数组去重
const arr = [1,1,2,2,3,3,4,4,5,5,6,6,7,7];
const result = [...new Set(arr)]; //数组去重 返回新数组
console.log(result);