【js】Set 、 Map、WeakSet

JavaScript 的 Set 和 Map 是两种数据结构,而 WeakSet 是一种特殊类型的 Set。以下是关于它们的详细说明和代码示例:

1、Set

Set 是一种集合,它允许存储多个值,并且每个值只能存储一次。它具有以下方法:

add(value):向 Set 中添加一个新值。
has(value):判断某个值是否存在于 Set 中。
delete(value):从 Set 中删除某个值。
clear():清空整个 Set。
示例代码:

const mySet = new Set();
mySet.add(1);
mySet.add(2);
console.log(mySet); // Set {1, 2}
console.log(mySet.has(1)); // true
console.log(mySet.has(3)); // false
mySet.delete(2);
console.log(mySet); // Set {1}
mySet.clear();
console.log(mySet); // Set {}

2、Map

Map 是一种映射,它允许存储键值对,并且每个键名必须是唯一的。它具有以下方法:

set(key, value):向 Map 中添加一个新的键值对。
get(key):根据键名获取对应的键值。
has(key):判断某个键名是否存在于 Map 中。
delete(key):根据键名从 Map 中删除对应的键值对。
clear():清空整个 Map。
示例代码:

const myMap = new Map();
myMap.set('name', 'Alice');
myMap.set('age', 20);
console.log(myMap); // Map { 'name' => 'Alice', 'age' => 20 }
console.log(myMap.get('name')); // 'Alice'
console.log(myMap.has('age')); // true
console.log(myMap.has('height')); // false
myMap.delete('age');
console.log(myMap); // Map { 'name' => 'Alice' }
myMap.clear();
console.log(myMap); // Map {}

3、WeakSet

WeakSet 是一种特殊类型的 Set,它只能存储对象类型作为其元素。这意味着你不能将其他类型的值(如数字、字符串等)添加到 WeakSet 中。WeakSet 中的对象不会被垃圾回收,除非它们没有任何其他引用。这使得 WeakSet 可以用来存储与某些对象关联的附加信息,而不会阻止这些对象被垃圾回收。

示例代码:

const ws = new WeakSet();
const obj = {}; // 必须是一个对象类型才能被添加到 WeakSet 中
ws.add(obj); // 将 obj 添加到 WeakSet 中
console.log(ws.has(obj)); // true
ws.delete(obj); // 从 WeakSet 中删除 obj
console.log(ws.has(obj)); // false
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

科学熊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值