最近读了一些有关于ES6的文章,觉得真是一个超级大的进步,就是不知道兼容性怎么样,鉴于我还在初学,先写个小例子练手,顺便时刻提醒自己要坚持学下去。未来的趋势肯定是替代es5没跑了。
var arr=[1,2,1,3,2,4,5,1,3];
var setArr=new Set(arr);
var newArr=[];
setArr.forEach(function(e){
newArr.push(e);
});
console.log(newArr);
set是es6里新提出的一个集合的概念,类似于数组arr,同样不只是数字类型,其他类型的数据如字符串等也是支持的,set有个和数组不同的特性就是重复的元素加入集合中是无效的,因此一个数组,利用set.add来加入到这个集合中来就自动实现了去重的步骤。
以下是Set支持的所有操作:
new Set:创建一个新的、空的Set。
new Set(iterable):从任何可遍历数据中提取元素,构造出一个新的集合。
set.size:获取集合的大小,即其中元素的个数。
set.has(value):判定集合中是否含有指定元素,返回一个布尔值。
set.add(value):添加元素。如果与已有重复,则不产生效果。
set.delete(value):删除元素。如果并不存在,则不产生效果。.add()和.delete()都会返回集合自身,所以我们可以用链式语法。
set[Symbol.iterator]()