es6新增-set数据结构

目录

一.Set的使用

1.set本身就是一个构造函数,用来生成set数据结构

2.set函数可以接受一个数组作为参数,用来初始化

3.实例属性、方法、遍历

 二.遍历 for ..of 循环

 三.set与数组的互换

数组转set

set转数组

 四.Set的应用场景

1.数组去重

2.求两个集合(或数组)的并集(Union)、交集(Intersect)和差集(Difference)

并集

交集

差集

五.WeakSet

相同点:

不同点:


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不可遍历

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值