Set和数组有什么区别?

Set是ES6新加的一个数据结构,表示“一组数据的集合”,跟数组有点像。

Set跟数组的区别在于,Set的成员值是唯一的,没有重复。而数组里的成员值可以有重复。

相信大家很容易就可以判断出来,Set本身是一个构造函数,可以接收一个数组或类数组对象作为参数。

既然谈到了Set是构造函数,那么我们最终是要实例化它,我们来看个例子:

let set = new Set();
set.add(1);
set.add(1);
console.log(set); // Set { 1 }

从以上代码,我们发现,Set实例是一个集合,我们添加了两个1,但是set只有一个1,这是因为set的成员不可以重复。

Set这个构造函数在new的时候可以接收一个数组作为参数,大家看一下运行结果:

[1,2,3,2]经过这么一个去重处理,得到了{1,2,3}。