目录
2.求两个集合(或数组)的并集(Union)、交集(Intersect)和差集(Difference)
es6新增:set和WeakSet数据结构
set:set数据结构。存储一组唯一的、无序的元素的集合
一.Set的使用
1.set本身就是一个构造函数,用来生成set数据结构
const set = new Set()
console.log(set)
console.log(set.size)
2.set函数可以接受一个数组作为参数,用来初始化
const set = new Set([[2,0,2,2])
console.log(set)
console.log(set.size)
3.实例属性、方法、遍历
Set结构有以下属性/方法
const set = new Set([[2,0,2,2])
console.log(set.size)
size : 返回Set实例的成员个数
add(value) : 添加某个值,返回Set结构本身
set.add("a")
console.log(set.size)
set.add("a").add("b")
console.log(set.size)
delete(value): 删除某个值,返回一个布尔值,表示是否删除成功
console.log(set.delete(0))
console.log(set)
has(value) : 返回一个布尔值,表示该值是否为Set的成员
console.log(set.has(2))
console.log(set.has(6))
clear(): 清除所有成员,没有返回值
set.clear()
console.log(set.size)
二.遍历 for ..of 循环
原型链上有interator属性,使用for..of循环
for(let item of set){
console.log(item) }
三.set与数组的互换
数组转set
const arr = [7,8,9]
const set = new Set(arr)
console.log(set.size)
set转数组
console.log([ ...set ])
console.log(Array.from(set))
四.Set的应用场景
const arr = [2,0,2,2,"赚","钱","多","多"]
1.数组去重
console.log(Array.from(new Set(arr)))
console.log([...new Set(arr)])
2.求两个集合(或数组)的并集(Union)、交集(Intersect)和差集(Difference)
const set1 = new Set([3,4,5]);
const set2 = new Set([4,5,6]);
并集
const set = new Set([...set1,set2])
console.log(set.keys())
console.log(set.values())
console.log(set.entries())
交集
console.log( new Set([...set1].filter(item=>set2.has(item))).keys() )
差集
console.log( new Set([...set1].filter(item=> !set2.has(item))).keys() )
五.WeakSet
WeakSet 结构与set类似
相同点:
存储不重复、无序的元素的集合
不同点:
(1)WeakSet的成员只能是引用类型,不能是其他基本类型
(2)WeakSet不可遍历