Set与Map集合

文章介绍了JavaScript中的Set和Map数据结构,强调了它们的唯一性特点和常用操作,如添加、删除和检查成员。接着,提到了WeakSet和WeakMap,它们限制了键或值必须为对象,并具有弱引用特性,用于内存优化。最后,讨论了如何遍历这些集合以及它们在缓存管理中的作用。
摘要由CSDN通过智能技术生成

一,js中的Set

概念:set是一个值的集合,类似于数组。但是他与数组不同的是,他的值是唯一的。Set类也提供了一些有用的方法。

常用属性

  • size - 获取当前集合成员的数量

常用方法

  • add(value) - 添加一个值,返回Set本身
  • delete(value) - 删除一个值,返回true或false
  • has(value) - 判断该值是否为Set的成员,返回true或fasle
  • clear() - 清除所有成员,没有返回值

示例:

var s = new Set();
s.add(2).add('张三');

console.log(s.has(2));    // true
console.log(s.has(3));    // false
console.log(s.size);      // 2

s.delete('张三');
console.log(s.has('张三')); // false

二,js中的Map

概念:js中的Map是一个键值对的集合,类似于对象。Map的大部分特性都可以用Object类型来实现。但他与对象不同的是,Map可以用任意类型作为键值,而对象只能用string和Symbol类型。

常用属性

  • size - 获取当前集合成员的数量

常用方法

  • set(key, value) - 添加一个键值对,返回Map本身
  • get(key) - 获取指定键对应的值
  • delete(key) - 删除一个键,返回true或false
  • has(key) - 判断该值是否存在某个键,返回true或fasle
  • clear() - 清除所有成员,没有返回值

示例:

var m = new Map();
var key2 = {name: '张三', age: 18};
m.set(2, '第二').set(key2, {id: 123, name: '人类对象'});
console.log(m.get(2));    // '第二'
console.log(key2);        // {id: 123, name: '人类对象'}
m.delete(2);
console.log(m.has(2));    // false

三,js中的WeakSet

WeakSet和Set类似,不同的是WeakSet的值都是对象类型,而且每个元素都是弱引用,如果没有被其他地方引用,就会自动删除释放内存。

四,js中的WeakMap

WeakMap与Map类似,不同的是WeakMap的键值都是对象类型,而且每个键值都是弱引用,如果键对象没有被其他地方引用,就会自动删除释放内存。

五,遍历Map和Set

他们都可以用forEach、for of来遍历;都不能用map来遍历

六,WeakSet和WeakMap的作用

WeakSet和WeakMap的弱引用机制,可以用来实现缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妍思码匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值