在 ES6 中,多了两个新的数据结构:Map 和 Set。这两个数据结构的添加,增强了 JavaScript 在数据处理的能力,也使代码更加简洁和高效。本文将详细介绍 Map 和 Set 的使用方法,并提供一些示例代码来指导读者如何正确地使用它们。
Map
Map 是一种键值对的集合,其中每个键都必须是唯一的。可以使用任何类型的值作为键和值,包括基本数据类型和对象。
Map 的创建与赋值
创建一个 Map 对象可使用 new Map() 方法,也可以接收一个数组作为参数,数组中包含键值对的数组,例如:
let map = new Map(); map.set('name', '小明'); map.set('age', 22); map.set('gender', '男');
也可使用以下方式创建 Map 对象:
let map = new Map([ ['name', '小明'], ['age', 22], ['gender', '男'] ]);
Map 的访问与遍历
通过 get 方法获取键对应的值,可使用 has 方法检查一个键是否存在:
if (map.has('name')) { console.log(map.get('name')); }
通过 keys 方法可以获取 Map 的所有键,values 方法可以获取所有的值。也可以通过 entries 方法获取 Map 的所有键值对,以数组形式返回:
for (let [key, value] of map.entries()) { console.log(key + ':' + value); }
Map 的修改和删除
使用 set 方法可以修改 Map 中的某个键对应的值,使用 delete 方法可以删除 Map 中某个键的值:
map.set('name', '小红'); map.delete('gender');
Map 的大小
Map 的大小可以通过 size 属性获取:
console.log(map.size);
Set
Set 是一种无序不重复元素的集合。可使用任何类型的值作为集合中的元素,包括基本数据类型和对象。
Set 的创建与赋值
创建一个 Set 对象可使用 new Set() 方法,也可以接收一个数组作为参数,数组中包含 Set 中的元素,例如:
let set = new Set(); set.add(1); set.add(2); set.add(3);
也可使用以下方式创建 Set 对象:
let set = new Set([1, 2, 3]);
Set 的访问与遍历
使用 has 方法检查 Set 中是否存在某个元素:
if (set.has(1)) { console.log(set.get(1)); }
通过 values 方法可以获取 Set 的所有值,也可以通过 entries 方法获取 Set 的所有键值对,以数组形式返回:
for (let [key, value] of set.entries()) { console.log(key); }
Set 的修改和删除
使用 add 方法可以向 Set 中添加元素,使用 delete 方法可以删除 Set 中某个元素:
set.add(4); set.delete(2);
Set 的大小
Set 的大小可以通过 size 属性获取:
console.log(set.size);
总结
Map 和 Set 是 ES6 中新增的两个数据结构,它们提供了一种更加高效和灵活的方法来存储和处理数据。这篇文章详细介绍了 Map 和 Set 的使用方法,并提供了一些示例代码来帮助读者更好地理解它们的用法。希望读者能够通过学习这篇文章,掌握使用 Map 和 Set 处理数据的技巧,提高自己的前端开发水平。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fc032bf6b2d6eab3200cb0