ES6提供了数据结构Set。类似于数组,但是没有重复值。
---------------------百度
1.set使用构造方法来构建,且传入的值需要为数组,如:
let arr = [1, 2, 3, 4];
console.log(arr);
let set1 = new Set(arr);
console.log(set1);
let set2 = new Set(1, 2, 3);
console.log(set2);
显示的结果为
2.Array与Set的相互转化,上面已经讲了array转化为set,现在讲讲则呢么讲set转化为array
let arr = [1, 2, 3, 4];
let set1 = new Set(arr);
let new_arr = [...set1];
console.log(new_arr);
3.去重,由于set的特征,可以用来给数组去重(上面的事例已经给出了,就不再多说)
4.方法(只举几个常用的方法):
1.add方法:增加一个项,由于add方法返回的是该对象,因此可以使用类似jq的链式的写法, 如:
let arr = [1, 2, 3, 4];
let set1 = new Set(arr);
set1.add(5).add(5)
console.log(set1);
可以看到,还是自动去重的了
2.has方法:判断是否有某一项
let arr = [1, 2, 3, 4];
let set1 = new Set(arr);
let has_1 = set1.has(1);
console.log(has_1);
3.delete方法:删除某一项:返回的结果为true(删除成功),false(删除失败)
let arr = [1, 2, 3, 4];
let set1 = new Set(arr);
let delete1 = set1.delete(1);
let delete2 = set1.delete(1);
console.log(set1);
console.log(delete1);
console.log(delete2);
4.clear:清空一个set
由于一些朋友问我clear还有重新new一个有什么区别,我这边就直接打印出来,让大家自己去斟酌百度
let arr = [1, 2, 3, 4];
let set1 = new Set(arr);
set1 = new Set();
console.log(set1);
let set2 = new Set(arr);
set2.clear();
console.log(set2);
其他的方法,个人绝得不怎么重要,就不多说了