# set 集合

let set = new Set();
set.add(1);
set.add('huahua');
console.log(set);//Set{1,'huahua'}
console.log(set.size);//长度2
1
2
3
4
5

# 数组去重

let arr = [1,2,3,4,5,4,3,2,1];
let set = new Set(arr);
console.log(set);
//Set{1,2,3,4,5}

let newArr = Array.from(set);
//Array原型上的方法from,把set传进来转换成一个数组
console.log(newArr);
//打印数组[1,2,3,4,5]
1
2
3
4
5
6
7
8
9

# 封装去重

let norepeat = arr => Array.from(new Set(arr));
//箭头函数norepeat,传进来arr数组,返回一个去重过的数组
console.log(norepeat([1,2,3,1,1,1]))
//打印123
1
2
3
4

# 判断是否有元素

let arr = [1,2,3,4,5,4,3,2,1];
let set = new Set(arr);
console.log(set.has(1));//true
1
2
3

# 删除元素

set.delete(1)
console.log(set);//2345
1
2

# 清空元素

set.clear()
console.log(set);//空
1
2

# 数组遍历

// for of
//for...of循环可以代替数组实例的forEach方法
for (let key of set.keys()) {
    console.log(key);//12345
}

for (let val of set.values()) {
    console.log(val);//12345
}

for (let val of set) {
    console.log(val);//12345
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# key和value

for (let [key,value] of set.entries()) {
    console.log(key,value);//属性12345值123456
}
1
2
3