es6中set和map的试用
时间: 2025-08-18 16:12:15 浏览: 14
### ES6 中 Set 和 Map 的使用教程
#### 关于 Set
Set 是一种集合数据结构,其成员是唯一的且无序。这意味着在一个 Set 对象中不会存在两个相同的值。
创建一个新的 `Set` 可通过调用构造函数来实现:
```javascript
let set = new Set();
set.add(1);
set.add('string');
console.log(set.has(1)); // true
```
对于已经存在的可迭代对象(比如数组),也可以直接传入到 `Set()` 构造器内初始化一个新集合作为参数[^2]。
关于 `Set` 实例的一些常用方法如下所示:
- `.add(value)` 添加某个值作为新的条目;
- `.delete(value)` 移除指定的条目;
- `.has(value)` 判断是否存在某特定条目的布尔返回值;
- `.clear()` 清空整个集合中的所有元素;
另外还有几个有用的属性和方法用于获取当前集合大小以及遍历其中的内容,例如`.size`, `.entries()`, `.values()`, `.keys()` 等等[^3]。
#### 关于 Map
Map 数据结构允许任何类型的键名而不仅仅是字符串或 Symbols 类型,并能保存键/值对关系。这使得它非常适合用来存储关联性的数据。
创建一个新的 `Map` 同样可以通过构造函数完成:
```javascript
const map = new Map([
['key1', 'value associated with key1'],
['key2', 'value associated with key2']
]);
```
上述代码片段展示了如何利用二维数组的形式一次性向映射表里添加多个键值对[^1]。
有关 `Map` 实例的操作还包括但不限于以下几个方面:
- 获取键的数量:`map.size`;
- 设置键对应的值:`map.set(key,value)`;
- 查找给定键所对应之值:`map.get(key)`;
- 删除指定键及其关联的数据项:`map.delete(key)`;
- 测试是否含有某一键:`map.has(key)`;
值得注意的是,在某些情况下可能需要把 `Map` 转换成 JSON 格式的字符串以便在网络上传输或者持久化保存。此时可以先借助 `Object.fromEntries()` 函数将 `Map` 映射成普通的 JavaScript 对象再进一步处理[^4]:
```javascript
// 将 Map 转换为 JSON 字符串的例子
const myMap = new Map([['name', 'Alice'], ['age', 18]]);
const objFromMap = Object.fromEntries(myMap);
const jsonString = JSON.stringify(objFromMap);
console.log(jsonString); // {"name":"Alice","age":18}
```
阅读全文
相关推荐

















