在前端开发中,数据操作是不可或缺的一部分。ES6 引入了 Map
和 Set
两个数据类型,这两个数据类型的出现方便了开发者在 JavaScript 中进行集合和映射的操作。本文将从以下几个方面介绍如何在 ES6 中使用 Map
和 Set
进行数据操作:
Map
数据类型的初始化及方法使用Set
数据类型的初始化及方法使用Map
和Set
的区别与使用场景
1. Map
数据类型的初始化及方法使用
1.1 初始化
Map
通过 new Map()
来实例化:
const map = new Map();
同时,Map
也可以通过传入一个数组初始化:
const map = new Map([ ['name', 'Alice'], ['age', 18] ]);
上述代码创建了一个 Map
实例,其中包含两个键值对,即 name
对应 Alice
,age
对应 18
。需要注意的是,Map
中的键和值可以是任何类型的数据,包括字符串、数字、布尔值、对象等。
1.2 方法使用
Map
提供了以下几个常用的方法:
1.2.1 Map.prototype.has(key)
返回一个布尔值,表示该 Map
实例中是否存在指定的 key
值:
map.has('name'); // true map.has('gender'); // false
1.2.2 Map.prototype.get(key)
返回指定 key
对应的值:
map.get('name'); // 'Alice' map.get('age'); // 18
1.2.3 Map.prototype.set(key, value)
设定指定 key
对应的值,如果该 key
不存在,则新建一个键值对:
map.set('gender', 'female'); map.get('gender'); // 'female'
1.2.4 Map.prototype.delete(key)
删除指定 key
对应的键值对:
map.delete('age'); map.get('age'); // undefined
1.2.5 Map.prototype.clear()
清空 Map
实例中的所有键值对:
map.clear(); map.get('name'); // undefined map.size; // 0
2. Set
数据类型的初始化及方法使用
2.1 初始化
Set
通过 new Set()
来实例化:
const set = new Set();
同时,Set
也可以通过传入一个数组初始化:
const set = new Set(['apple', 'banana', 'orange']);
上述代码创建了一个 Set
实例,其中包含三个值,即 apple
、banana
和 orange
。同样地,Set
中的值也可以是任何类型的数据。
2.2 方法使用
Set
提供了以下几个常用的方法:
2.2.1 Set.prototype.has(value)
返回一个布尔值,表示该 Set
实例中是否存在指定的值:
set.has('apple'); // true set.has('grape'); // false
2.2.2 Set.prototype.add(value)
添加一个值到 Set
实例中,如果该值已存在,则不进行任何操作:
set.add('grape'); // Set { 'apple', 'banana', 'orange', 'grape' } set.add('apple'); // Set { 'apple', 'banana', 'orange', 'grape' }
2.2.3 Set.prototype.delete(value)
删除指定值:
set.delete('banana'); set.has('banana'); // false
2.2.4 Set.prototype.clear()
清空 Set
实例中的所有值:
set.clear(); set.has('apple'); // false set.size; // 0
3. Map
和 Set
的区别与使用场景
虽然 Map
和 Set
都是用来存储多个数据的集合,但它们之间还是有一定的区别。一般来说,如果需要建立键和值之间的映射关系,应该使用 Map
;如果只需要存储值,而不需要建立映射关系,应该使用 Set
。
下面是一些实际使用场景的示例:
3.1 使用 Map
-- -------------------- ---- ------- -- ---------------- ----- --------------- - --- ----- --------- --- ---------- --- ---------- -- --- -- ------------- ----- --------- - --------- --------- --------- -------- ---------- ----- ----------- - --- ------ --- ------ ---- -- ---------- - -- ----------------------- - --------------------- --------------------- - --- - ---- - --------------------- --- - - -- ------------ --- - ------- -- -- -------- -- -- -------- -- - -
3.2 使用 Set
-- -------------------- ---- ------- -- ------- ----- -------------- - --- ------------- ----------- -- ----------------- ----- --------- - --------- -- ------------------------------- - ---------------- ---- ---- --------- - ---- - ---------------- ------ ---- ---- --------- - -- -- ----- --------- - --------- --------- --------- -------- ---------- ----- ------------ - --- --------------- -- ------------- --- - -------- --------- -------- -
总结
Map
和 Set
是 ES6
中方便的新数据类型,能够方便地进行多个数据的集合操作。组合使用 Map
和 Set
可以实现更加复杂的数据操作。但需要注意的是,在实际使用中应该根据具体场景选择合适的数据类型,避免不必要的代码复杂度。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c7193910032fedd3907c29