ES6 集合Set

ES6新增的Set是一种集合类型的数据结构,承载着有序不可重复的值。

集合(Set)是由一组无序但彼此之间又有一定关系性的成员构成,每个成员在集合中只能出现一次,不同于我们之前说的字典,链表之类的,它是一种包含了不同元素的数据结构。

set的属性和方法: 
1.Set.prototype.constructor:构造函数,默认就是Set函数; 
2.Set.prototype.size:返回Set实例的成员总数。

Set实例的方法: 
1.add(value):添加某个值,返回Set结构本身。 
2.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。 
3.has(value):返回一个布尔值,表示该值是否为Set的成员。 
4.clear():清除所有成员,没有返回值。

Set遍历的方法: 
1.keys():返回键名的遍历器 
2.values():返回键值的遍历器 
3.entries(),返回键值对的遍历器 
4.clear():使用回调函数遍历每个成员

let set = new Set();
set.add("a");
// console.log(set.has("a"))//true
set.add('2');
set.add(2);
console.log(set.has('2'));//true 字符串和数字视为不同的元素
console.log(set.has(2));//true
set.delete("2")
console.log(set.has('2'))//false
console.log(set.size)//2
set.clear(); 
console.log(set.size)//0

 集合添加对象他们彼此独立 

let set = new Set();
let obj1 = {name:'zz'};
let obj2 = {age:18};
set.add(obj1);
set.add(obj2);

console.log(set.size)//2
//可以通过for of 迭代
for(let value of set){
    console.log(value)//{name: "zz"} //{age: 18}
}

集合转化为数组

使用对象展开运算符  ...


//集合转化为数组
let set = new Set([1,3,4,8,3]);
let arr = [...set];
console.log(arr);// [1, 3, 4, 8]

    如果已经创建过一个数组,想要复制它并创建一个无重复元素的新数组,则上述这个方法十分管用

对于集合的常见操作有在中学里面学到的交,并,补,子集,空集等概念。

交集:将两个集合中共同存在的成员组成的一个新的集合 
并集:将两个集合中的成员进行合并,得到一个新的集合 
补集:属于一个集合而不属于另一个集合的成员组成的新的集合 
子集:一个集合(A)内的所有元素等同于另一个集合(B)或者能够在另一个集合(B)里面找到该集合的所有元素,那么这个集合(A)就是集合(B)的子集

交,并,补操作

let a = new Set([1, 2, 3]);
let b = new Set([3, 5, 2]);

// 并集
let unionSet = new Set([...a, ...b]);
console.log("并集",unionSet)//[1,2,3,5]

// 交集
let intersectionSet = new Set([...a].filter(x => b.has(x)));
console.log("交集",intersectionSet)// [2,3]

// ab差集
let differenceABSet = new Set([...a].filter(x => !b.has(x)));
console.log("差集",differenceABSet)// [1]



 

猜你喜欢

转载自blog.csdn.net/MeetLunay/article/details/83412476
今日推荐