赞
踩
Set 对象允许你存储任何类型的唯一值,无论是原始值还是对象引用。
特性:
常用方法:
1. add(value):添加一个新值到 Set。
2. delete(value):从 Set 中移除一个值。
3. has(value):检查 Set 是否包含某个值。
4. clear():移除 Set 中的所有值。
5. size:返回 Set 中的元素数量。
示例:
let set = new Set(); // 添加值 set.add(1); set.add("hello"); set.add({ name: "Alice" }); // 检查值是否存在 console.log(set.has(1)); // 输出:true console.log(set.has("hello")); // 输出:true console.log(set.has(2)); // 输出:false // 删除值 set.delete(1); console.log(set.has(1)); // 输出:false // 遍历 Set for (let item of set) { console.log(item); } // 清空 Set set.clear(); console.log(set.size); // 输出:0
Map 对象保存键值对的集合,其中键和值可以是任意类型。
特性:
常用方法:
示例:
let map = new Map(); // 添加键值对 map.set("key1", "value1"); map.set(1, "number"); map.set({ name: "Bob" }, "object"); // 通过键获取值 console.log(map.get("key1")); // 输出:value1 console.log(map.get(1)); // 输出:number // 检查键是否存在 console.log(map.has("key1")); // 输出:true console.log(map.has(2)); // 输出:false // 删除键值对 map.delete(1); console.log(map.has(1)); // 输出:false // 遍历 Map for (let [key, value] of map) { console.log(`${key}: ${value}`); } // 清空 Map map.clear(); console.log(map.size); // 输出:0
let weakSet = new WeakSet();
let obj = {};
weakSet.add(obj);
// 由于obj是唯一的,WeakSet不能添加重复的对象
console.log(weakSet.has(obj)); // 输出:true
// 当obj没有被其他地方引用时,它会被垃圾回收
obj = null;
// weakSet中的obj也会被自动移除
console.log(weakSet.has(obj)); // 输出:false
WeakMap 代码示例:
let weakMap = new WeakMap();
let keyObj = {};
weakMap.set(keyObj, "value");
// 获取与键相关联的值
console.log(weakMap.get(keyObj)); // 输出:value
// WeakMap中的键是弱引用,当keyObj没有被其他地方引用时,它会被垃圾回收
keyObj = null;
// weakMap中的键值对也会被自动移除
console.log(weakMap.get(keyObj)); // 输出:undefined
Set 和 Map 提供了现代的、高效的数据结构,适用于需要快速查找、添加和删除操作的场景。使用这些数据结构可以编写出更简洁、更高效的代码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。