Set结构
es6提供了新的数据结构set,set类似于数组,是一个伪数组,特点是成员都是唯一的,没有重复的值。
Set的创建:
// An highlighted block
let s=new Set();
//创建一个空的set
let s=new Set([1,2,3]);
//将数组传进构造函数中当作参数,创建set
Set的属性和方法
set的属性
// An highlighted block
let s=new Set([1,2,3]);
//size属性返回set实例的成员个数
console.log(s.size); //3
//constructor属性得到构造函数,默认就是Set函数
console.log(s.constructor);
Set的方法
1.add(value)添加某个值,可以是任意数据类型,不会发生数据类型的转换,所以5和"5",是不同的值,在Set中NaN等于NaN,不会重复添加
// An highlighted block
let s=new Set([1,2,2,3]) //s:1,2,3
s.add(4); //s:1,2,3,4
s.add(3); //s:1,2,3,4 (重复的值不会添加)
2.delete(value)删除某个值,复杂数据类型删除的是地址
// An highlighted block
let s=new Set([1,2,3]) //s:1,2,3
s.delete(3); //s:1,2
3.has(value)返回一个布尔值,表示该值是否是set成员, 注意复杂数据类型比较的是地址
// An highlighted block
let s=new Set([1,2,3]) //s:1,2,3
s.has(3); //true
4.clear()清空set结构,没有返回值
// An highlighted block
let s=new Set([1,2,3]) //s:1,2,3
s.clear();
console.log(s.size) //0
Set结构也可以用来数组去重
// An highlighted block
let arr=[1,1,2,3,3,4];
console.log(arr) //1,1,2,3,3,4
arr=[...new Set(arr)];
console.log(arr); //1,2,3,4
//这是一个数组去重相对简单可行的方法
小结:当然set的方法远不止这么多,列出一部分作为了解和复习,希望可以帮到你们