在 ECMAScript 2015(ES6)中,Map 和 Set 是两个新的数据结构,它们分别用于存储键值对和唯一值。在前端开发中,使用它们能够简化代码,并提高代码执行效率。
Map
Map 是一种存储键值对的集合,其中可以使用任何类型的值作为键(包括对象、方法和原始类型)。相比于 ES5 中的 Object,Map 提供了更加丰富的 API,能够更加方便地操作键值对。下面是一些常见的 Map 用法:
创建 Map 对象
可以使用关键字 new
创建一个新的 Map 对象:
const map = new Map();
设置键值对
使用 set
方法可以向 Map 对象中添加或修改一个键值对:
const map = new Map(); map.set('key', 'value');
获取键值对
使用 get
方法可以获取一个键的值:
const map = new Map(); map.set('key', 'value'); const value = map.get('key'); // 'value'
如果键不存在,将返回 undefined
。
检查键是否存在
使用 has
方法可以检查一个键是否存在于 Map 对象中:
const map = new Map(); map.set('key', 'value'); const hasKey = map.has('key'); // true
删除键值对
使用 delete
方法可以删除一个键值对:
const map = new Map(); map.set('key', 'value'); const deleted = map.delete('key'); // true
如果键不存在,将返回 false
。
遍历键值对
可以使用 forEach
方法或者 for...of
语句遍历 Map 对象中的键值对:
-- -------------------- ---- ------- ----- --- - --- ------ --------------- ---------- --------------- ---------- -- -- ------- -- ------------------- ---- -- -------------------- ------------ -- -- -------- -- --- ------ ----- ------ -- ---- - -------------------- ----------- -
获取键的集合和值的集合
可以使用 keys
方法和 values
方法分别获取 Map 对象中键的集合和值的集合:
-- -------------------- ---- ------- ----- --- - --- ------ --------------- ---------- --------------- ---------- ----- ---- - ----------- -- ------------- ----- ------ - ------------- -- ------------- --- ------ --- -- ----- - ----------------- -- ------- ------ - --- ------ ----- -- ------- - ------------------- -- --------- -------- -
获取 Map 对象中键值对的数量
可以使用 size
属性获取 Map 对象中键值对的数量:
const map = new Map(); map.set('key1', 'value1'); map.set('key2', 'value2'); const size = map.size; // 2
Set
Set 是一种存储唯一值的集合,其中不能添加重复的元素,可以使用任何类型的值作为元素。与 Map 类似,Set 提供了丰富的 API,方便地操作集合。下面是一些常见的 Set 用法:
创建 Set 对象
可以使用关键字 new
创建一个新的 Set 对象:
const set = new Set();
向 Set 对象中添加元素
使用 add
方法向 Set 对象中添加元素:
const set = new Set(); set.add(1); set.add(2);
检查元素是否存在
使用 has
方法检查 Set 对象中是否存在某个元素:
const set = new Set(); set.add(1); const hasOne = set.has(1); // true const hasTwo = set.has(2); // false
删除元素
使用 delete
方法删除 Set 对象中的一个元素:
const set = new Set(); set.add(1); const deleted = set.delete(1); // true
同样的,如果元素不存在,将返回 false
。
遍历元素
可以使用 forEach
方法或者 for...of
语句遍历 Set 对象中的元素:
-- -------------------- ---- ------- ----- --- - --- ------ ----------- ----------- -- -- ------- -- ------------------- -- -------------------- -- -- -------- -- --- ------ ----- -- ---- - ------------------- -
获取 Set 对象中元素的数量
可以使用 size
属性获取 Set 对象中元素的数量:
const set = new Set(); set.add(1); set.add(2); const size = set.size; // 2
总结
在本文中,我们详细地介绍了 ECMAScript 2015 中的 Map 和 Set 两种数据结构。它们分别用于存储键值对和唯一值,在前端开发中得到了广泛的应用。通过学习它们的用法,我们可以更加方便地操作键值对和集合,简化代码并提高执行效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ccc4f05ad90b6d042ba887