Set Map

Set 集合

  • 松散结构,没有key,只有value的集合,存储唯一的值,数据不能重复不能排序, 插入删除速度快,可以得到集合中数据的长度,可以遍历,查找速度快,没有下标。

  • 操作包括添加(add)、删除(delete)、判断是否存在(has)、清除所有数据(clear),可以获取集合大小(size),支持遍历(forEach循环和for...of循环)。

  • 可用于数组去重和减少查找操作(减少查找” 操作可能指的是利用特定数据结构(如Set)来更高效地判断一个值是否存在于一个集合中,从而减少查找的时间复杂度。)

             // 1、去重
             // 引用地址改变
             var arr=[1,2,3,1,2,3,4,5,7,6,4,3,2,4,6,5,7];
             var arr1=Array.from(new Set(arr));
             console.log(arr1);
             console.log(arr1===arr);
     ​
             // 2、减少查找
             var arr=[1,2,3,4];
             console.log(arr.includes(2));//在数组中查找是否存在

  • Set本身也是迭代器

WeakSet

弱引用集合

  • 存储对象的弱引用,当没有其他强引用指向这些对象时,垃圾回收机制可以回收这些对象所占的内存。

  • 不能遍历,主要用于存储临时的对象引用,避免造成内存泄漏。

Map 映射

  • 松散结构,以键值对形式存储数据,查找和添加删除速度快,不能排序,可以获取到数据存储的长度,key可以是任何类型

  • 键可以是任何类型,操作包括设置键值对(set)、根据键获取值(get)、删除键值对(delete)、判断键是否存在(has)、获取存储值的数量(size),支持遍历(forEach循环、解构遍历、遍历键和遍历值等)。

     ​
             // 遍历map
             m.forEach((value,key)=>{
                 console.log(value,key);
             })
     ​
             // 解构
             for(let [key,value] of m){
                 console.log(key,value);
             }
     ​
             // 只遍历key
             for(var key of m.keys()){
                 console.log(key);
             }
             // 只遍历value
             for(var value of m.values()){
                 console.log(value);
             }

  • 可以通过多种方式初始化,如直接设置键值对、使用数组形式的迭代器、从对象转换而来。

WeakMap

弱引用映射

  • 键只能是引用类型,不能遍历。

  • 同样用于存储临时的对象引用,避免内存泄漏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值